Erster Touch der Files-Klasse (oder Java 8)

Dateiklasse, die ich zum ersten Mal berührt habe

Es ist vielleicht nicht einmal der erste Schritt, aber ich werde es nach und nach tun. 2019/04/19 Ein wenig aktualisiert.

Dateiinhalt lesen

input_01.csv


"ID","Klasse","Name"
"0001","Säbel","Altria"
"0002","Zaubernden","Medien"
"0003","Berserker","Herkules"

input_02.csv


"ID","Schiffstyp","Name"
"0001","Schlachtschiff","Nagato"
"0002","ein leichter Kreuzer","Abukuma"
"0003","Zerstörer","Hitze-Dunst"

Quelle

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{

	/**
	 *Die erste Files-Klasse.
	 *
	 */
	public static void main(String args[]) throws Exception{

		FileInOutFirst fileInOutFirst = new FileInOutFirst();
		fileInOutFirst.inOut01();
		fileInOutFirst.inOut02();
		fileInOutFirst.inOut03();
		fileInOutFirst.inOut04();
		fileInOutFirst.inOut05();
	}

	/**
	 *Teil 1.<br>
	 *Versuchen Sie vorerst, auf Standardausgabe auszugeben.
	 *
	 */
	private void inOut01() throws Exception {
		//SJIS-Datei lesen
		List<String> input = Files.readAllLines(Paths.get("D:/", "input_01.csv"), Charset.forName("SJIS"));
		System.out.println("Teil 1");
		input.forEach(line -> System.out.println(line));
	}

	/**
	 *Teil 2.<br>
	 *Versuchen Sie vorerst, auf Standardausgabe auszugeben(UTF-8)。
	 *
	 */
	private void inOut02() throws Exception {
		//UTF-Lesen Sie 8 Dateien
		List<String> input = Files.readAllLines(Paths.get("D:/", "input_02.csv"), StandardCharsets.UTF_8);

		System.out.println("Teil 2");
		input.forEach(line -> System.out.println(line));
	}

	/**
	 *Teil 3.<br>
	 *Versuchen Sie vorerst, auf Standardausgabe auszugeben(UTF-8)。
	 *
	 */
	private void inOut03() throws Exception {
		//UTF-Lesen Sie 8 Dateien
		List<String> input = Files.readAllLines(Paths.get("D:/", "input_03.csv"), StandardCharsets.UTF_8);

		System.out.println("Teil 3");
		input.forEach(System.out::println);
	}

	/**
	 *Teil 4.<br>
	 *Versuchen Sie vorerst, auf Standardausgabe auszugeben(UTF-8)。
	 *
	 */
	private void inOut04() throws Exception {
		//UTF-Lesen Sie 8 Dateien
		List<String> input = Files.readAllLines(Paths.get("D:/", "input_03.csv"), StandardCharsets.UTF_8);
		List<String> input2 = new ArrayList<String>();
		System.out.println("Teil 4");
		input.forEach(input2::add);
		input2.forEach(System.out::println);
	}

	/**
	 *Teil 5.<br>
	 *Verwenden Sie newBufferedReader(Für große Dateien)
	 *
	 */
	private void inOut05() throws Exception {
		System.out.println("Teil 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);
			}
		}
	}
}

Ausgabeergebnis

Teil 1 "ID", "Klasse", "Name" "0001", "Sabre", "Altria" "0002", "Caster", "Media" "0003", "Berserker", "Herkules" Teil 2 "ID", "Schiffstyp", "Name" "0001", "Schlachtschiff", "Nagato" "0002", "Light Cruiser", "Abukuma" "0003", "Zerstörer", "Dunst"

Probieren Sie es vorerst aus

Dies ist die erste forEach-Methode, aber Sie können eine Schleife sehr ordentlich schreiben! Die Codierung ist auch praktisch, da Konstanten vorbereitet werden (leider scheint es kein SJIS zu geben).

Wenn Sie als Parameter einen anderen Zeichencode als den Zeichencode der Datei angeben, Die folgende Ausnahme tritt auf. Möglicherweise haben Sie die Möglichkeit, darauf zu stoßen. Denken wir also daran ...

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

Erster Touch der Files-Klasse (oder Java 8)
Lesen Sie die ersten 4 Bytes der Java-Klassendatei und geben Sie CAFEBABE aus
Fassen Sie die zusätzlichen Elemente der optionalen Klasse in Java 9 zusammen
Java: Das Problem ist schneller, Stream oder Loop
[Java] Löschen Sie die Elemente von List
[Java Edition] Geschichte der Serialisierung
So zerlegen Sie eine Java-Klassendatei
So dekompilieren Sie eine Java-Klassendatei
Verschiedene Methoden der String-Klasse
Der Ursprung von Java-Lambda-Ausdrücken
Untersuchen Sie die Liste der Zeitzonen-IDs, die in der Java ZoneId-Klasse verfügbar sind
Ich möchte die Notwendigkeit des Testens beurteilen, indem ich die Unterschiede der Klassendateien beim Refactoring von Java vergleiche.
Holen Sie sich das Ergebnis von POST in Java
[Java] Verwendung der File-Klasse
Überprüfen Sie den Inhalt des Java-Zertifikatspeichers
Passen Sie die Höhe der Xib-Datei automatisch an
Untersuchen Sie die Speichernutzung von Java-Elementen
Einführung in Java zum ersten Mal # 2
[Java Servlet] Die Straße von Senri ist auch der fünfte Schritt von einem Schritt
[Java] Ermittelt den Tag eines bestimmten Tages
[Java Servlet] Die Straße von Senri ist auch ein Schritt zum ersten
Lassen Sie uns das Ergebnis der Analyse von Java-Bytecode in einem Klassendiagramm ausdrücken
Anmerkung: [Java] Überprüfen Sie den Inhalt des Verzeichnisses
[Java Servlet] Die Straße von Senri ist auch der dritte Schritt vom ersten Schritt
Vergleichen Sie Elemente eines Arrays (Java)
[Tag: 5] Ich habe die Grundlagen von Java zusammengefasst
Was sind die aktualisierten Funktionen von Java 13
Messen Sie einfach die Größe von Java-Objekten
So finden Sie heraus, welche Java-Version der Klassendatei kompiliert wurde
Rückblick auf die Grundlagen von Java
[Verarbeitung × Java] Verwendung der Klasse
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
Ausgabe des Buches "Einführung in Java"
Zum ersten Mal Java lernen [Einführung]
Anmerkung: [Java] Identifizieren Sie Dateien mit einem Aktualisierungsdatum von 1 Tag oder weniger
[Socket-Kommunikation (Java)] Eindrücke von der erstmaligen Implementierung der Socket-Kommunikation in der Praxis
Ab Java9 werden Klassenkonstruktoren, die primitiven Typen entsprechen, als veraltet markiert.
Die Geschichte des Schreibens von Java in Emacs
[Java] Verwendung der Calendar-Klasse
[Java] Überprüfen Sie die Anzahl der Zeichen
[Java Servlet] Die Straße von Senri ist auch der vierte Schritt vom ersten Schritt
[Java] [Spring] Testen Sie das Verhalten des Loggers
[Java] Ermitteln Sie das Datum mit der LocalDateTime-Klasse
Zeigen Sie den japanischen Kalender und Tag mit der Java8-Standardklasse an
[Förderung des Ruby-Verständnisses (1)] Wenn Sie von Java zu Ruby wechseln, verstehen Sie zuerst den Unterschied.
Das erste Jahr des Berufslebens fasste zusammen, wie man die Java Bronze-Prüfung ablegt
Inkrementiert durch das dritte Argument der iterierten Methode der aus Java9 hinzugefügten Stream-Klasse
Code zum Löschen aller Dateien mit dem angegebenen Präfix in AWS S3 (Java)
Durchbrechen Sie gewaltsam das C-Problem "* 3 oder / 2" von [AtCoder Problem-ABC100] mit Java [Code]
[Java] Tag ab Datum berechnen (Kalenderklasse nicht verwenden)
[Ruby] Zusammenfassung der Klassendefinitionen. Beherrsche die Grundlagen.
[Java] Behandlung von Java Beans in der Methodenkette
Die Geschichte eines gewöhnlichen Othello in Java
[Android] [Java] Verwalten Sie den Status der CheckBox von ListView
Über die Idee anonymer Klassen in Java
[Löschen Sie den ersten Buchstaben der Zeichenfolge] Ruby
Die Reihenfolge der Java-Methodenmodifikatoren ist festgelegt
Messen Sie die Größe eines Ordners mit Java
[Java] Ermittelt die Länge der Ersatzpaarzeichenfolge