Première touche de la classe Files (ou Java 8)

Classe de fichiers que j'ai touchée pour la première fois

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.

Lire le contenu du fichier

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"

La source

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);
			}
		}
	}
}

Résultat de sortie

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"

Essayez-le pour le moment

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

Première touche de la classe Files (ou Java 8)
Lire les 4 premiers octets du fichier de classe Java et générer CAFEBABE
Récapitulez les éléments supplémentaires de la classe Optional dans Java 9
Java: dont le problème est plus rapide, en flux ou en boucle
[Java] Supprimer les éléments de la liste
[Édition Java] Histoire de la sérialisation
Comment désassembler un fichier de classe Java
Comment décompiler un fichier de classe Java
Diverses méthodes de la classe String
L'origine des expressions Java lambda
Examinez la liste des ID de fuseau horaire disponibles dans la classe Java ZoneId
Je veux juger de la nécessité de tester en comparant les différences des fichiers de classe lors de la refactorisation de Java.
Obtenez le résultat de POST en Java
[Java] Comment utiliser la classe File
Vérifiez le contenu du magasin de certificats Java
Ajuster automatiquement la hauteur du fichier Xib
Examiner l'utilisation de la mémoire des éléments Java
Introduction à Java pour la première fois # 2
[Servlet Java] La route de Senri est aussi la cinquième étape d'une étape
[Java] Obtenez le jour d'un jour spécifique
[Servlet Java] La route de Senri est également une étape vers la première
Exprimons le résultat de l'analyse du code d'octet Java dans un diagramme de classes
Mémo: [Java] Vérifiez le contenu du répertoire
[Servlet Java] La route de Senri est aussi la troisième étape de la première étape
Comparer les éléments d'un tableau (Java)
[jour: 5] J'ai résumé les bases de Java
Quelles sont les fonctionnalités mises à jour de Java 13
Mesurez facilement la taille des objets Java
Comment savoir quelle version Java d'un fichier de classe a été compilée
Retour sur les bases de Java
[Traitement × Java] Comment utiliser la classe
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
Sortie du livre "Introduction à Java"
Apprendre pour la première fois java [Introduction]
Mémo: [Java] Identifiez les fichiers dont la date de mise à jour est inférieure ou égale à 1 jour
[Communication Socket (Java)] Impressions de la mise en œuvre de la communication Socket dans la pratique pour la première fois
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
L'histoire de l'écriture de Java dans Emacs
[Java] Comment utiliser la classe Calendar
[Java] Vérifiez le nombre d'occurrences de caractères
[Servlet Java] La route de Senri est aussi la quatrième étape de la première étape
[Java] [Spring] Tester le comportement de l'enregistreur
[Java] Obtenez la date avec la classe LocalDateTime
Afficher le calendrier et le jour japonais en utilisant la classe standard java8
[Promotion de la compréhension de Ruby (1)] Lorsque vous passez de Java à Ruby, commencez par comprendre la différence.
La première année de vie professionnelle a résumé comment passer l'examen Java Bronze
Incrémenté du troisième argument de la méthode iterate de la classe Stream ajoutée depuis Java9
Code pour supprimer tous les fichiers du préfixe spécifié dans AWS S3 (Java)
Briser de force le problème C "* 3 ou / 2" de [AtCoder Problem-ABC100] avec Java [Code]
[Java] Calculer le jour à partir de la date (ne pas utiliser la classe Calendar)
[Ruby] Résumé des définitions de classe. Maîtrisez les bases.
[Java] Gestion des Java Beans dans la chaîne de méthodes
L'histoire de la fabrication d'un Othello ordinaire à Java
[Android] [Java] Gérer l'état de CheckBox de ListView
À propos de l'idée des classes anonymes en Java
[Supprimer la première lettre de la chaîne de caractères] Ruby
L'ordre des modificateurs de méthode Java est fixe
Mesurer la taille d'un dossier avec Java
[Java] Obtenir la longueur de la chaîne de paire de substitution