Ce n'est peut-être même pas la première étape, mais je le ferai petit à petit. 2019/04/19 Mis à jour un peu.
input_01.csv
"ID","classe","Nom"
"0001","Sabre","Altria"
"0002","roulette","médias"
"0003","Berserker","Hercule"
input_02.csv
"ID","Type de navire","Nom"
"0001","Bataille navale","Nagato"
"0002","un croiseur léger","Abukuma"
"0003","Destructeur","brume de chaleur"
FileInOutFirst.java
package com.otamesi;
import java.io.BufferedReader;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class FileInOutFirst{
/**
*La première classe Files.
*
*/
public static void main(String args[]) throws Exception{
FileInOutFirst fileInOutFirst = new FileInOutFirst();
fileInOutFirst.inOut01();
fileInOutFirst.inOut02();
fileInOutFirst.inOut03();
fileInOutFirst.inOut04();
fileInOutFirst.inOut05();
}
/**
*Partie 1.<br>
*Pour le moment, essayez de sortir en sortie standard.
*
*/
private void inOut01() throws Exception {
//Lire le fichier SJIS
List<String> input = Files.readAllLines(Paths.get("D:/", "input_01.csv"), Charset.forName("SJIS"));
System.out.println("Partie 1");
input.forEach(line -> System.out.println(line));
}
/**
*Partie 2.<br>
*Pour le moment, essayez de sortir sur la sortie standard(UTF-8)。
*
*/
private void inOut02() throws Exception {
//UTF-Lire 8 fichiers
List<String> input = Files.readAllLines(Paths.get("D:/", "input_02.csv"), StandardCharsets.UTF_8);
System.out.println("Partie 2");
input.forEach(line -> System.out.println(line));
}
/**
*Partie 3.<br>
*Pour le moment, essayez de sortir sur la sortie standard(UTF-8)。
*
*/
private void inOut03() throws Exception {
//UTF-Lire 8 fichiers
List<String> input = Files.readAllLines(Paths.get("D:/", "input_03.csv"), StandardCharsets.UTF_8);
System.out.println("Partie 3");
input.forEach(System.out::println);
}
/**
*Partie 4.<br>
*Pour le moment, essayez de sortir sur la sortie standard(UTF-8)。
*
*/
private void inOut04() throws Exception {
//UTF-Lire 8 fichiers
List<String> input = Files.readAllLines(Paths.get("D:/", "input_03.csv"), StandardCharsets.UTF_8);
List<String> input2 = new ArrayList<String>();
System.out.println("Partie 4");
input.forEach(input2::add);
input2.forEach(System.out::println);
}
/**
*Partie 5.<br>
*Utiliser newBufferedReader(Pour les gros fichiers)
*
*/
private void inOut05() throws Exception {
System.out.println("Partie 5");
Path file = Paths.get("D:/", "input_03.csv");
try (BufferedReader br = Files.newBufferedReader(file, StandardCharsets.UTF_8)) {
String text;
while ((text = br.readLine()) != null) {
System.out.println(text);
}
}
}
}
Partie 1 "ID", "classe", "nom" "0001", "Sabre", "Altria" "0002", "Caster", "Media" "0003", "Berserker", "Hercule" Partie 2 "ID", "type de navire", "nom" "0001", "Battleship", "Nagato" "0002", "croiseur léger", "Abukuma" "0003", "Destroyer", "Haze"
C'est la première méthode forEach, mais vous pouvez écrire des boucles très proprement! De plus, l'encodage est pratique car les constantes sont préparées (malheureusement, il ne semble pas y avoir de SJIS).
Si vous spécifiez un code de caractère différent du code de caractère du fichier comme paramètre, L'exception suivante se produit. Vous aurez peut-être une chance de le rencontrer, alors souvenons-nous ...
Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at java.nio.file.Files.readAllLines(Files.java:3205)
Recommended Posts