Beispielprogramm für die Eingabe / Ausgabe von Java-Dateien (jdk1.8 oder höher)

Dies ist ein Memo des Beispielprogramms für die Eingabe / Ausgabe von Java-Dateien (jdk1.8 oder höher).

1. Lesen Sie die Binärdatei

1.1. Massenladen

Dies ist ein Beispielprogramm, das "C: / dk / input.xlsx" auf einmal liest und es hexadezimal an die Standardausgabe ausgibt. Wenn Sie in großen Mengen lesen, müssen Sie auf die Größe achten, damit nicht der Speicherplatz knapp wird.

BinaryFileInputNio.java


package test.nio;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 *Lesen Sie eine Binärdatei
 */
public class BinaryFileInputNio {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Der Name der gelesenen Datei
		Path path = Paths.get("C:/dk", "input.xlsx");

		try {
			
			//Massenlesen von Binärdateien
			byte[] data = Files.readAllBytes(path);
			
			//Geben Sie die gelesenen Binärdaten hexadezimal an die Standardausgabe aus
			for (int i = 0; i < data.length; i++) {
				System.out.printf("%02x ", data[i]);
			}
			System.out.println();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

1.2 Geteilte Lesung

Dies ist ein Beispielprogramm, das "C: / dk / input.xlsx" in Einheiten von 1024 Bytes liest und es hexadezimal an die Standardausgabe ausgibt.

BinaryFileInputNioPart.java


package test.nio;

import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 *Lesen Sie eine Binärdatei
 */
public class BinaryFileInputNioPart {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Der Name der gelesenen Datei
		Path path = Paths.get("C:/dk", "input.xlsx");

		//Generierung von Eingabestreams
		try (InputStream inst = Files.newInputStream(path)) {

			//Byte-Array zum Lesen
			byte[] buf = new byte[1024];

			int len = 0;
			//Lesen aus dem Eingabestream (Lesen einer Datei)
			while ((len = inst.read(buf)) != -1) {

				//Geben Sie die gelesenen Binärdaten hexadezimal an die Standardausgabe aus
				for (int i = 0; i < len; i++) {
					System.out.printf("%02x ", buf[i]);
				}
				System.out.println();
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

2. Schreiben einer Binärdatei

2.1 Massenschreiben

Dies ist ein Beispielprogramm, das Binärdaten sofort in C: / dk / output.dat schreibt.

BinaryFileOutputNio.java


package test.nio;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 *Schreiben Sie eine Binärdatei
 */
public class BinaryFileOutputNio {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Name der Schreibdatei
		Path path = Paths.get("C:/dk", "output.dat");

		//Binärdaten
		byte[] data = { (byte)0xe3, (byte)0x83, (byte)0x86, (byte)0xe3, (byte)0x82, (byte)0xad, (byte)0xe3, (byte)0x82, (byte)0xb9, (byte)0xe3, (byte)0x83, (byte)0x88, (byte)0xe3, (byte)0x83, (byte)0x95, (byte)0xe3, (byte)0x82, (byte)0xa1, (byte)0xe3, (byte)0x82, (byte)0xa4, (byte)0xe3, (byte)0x83, (byte)0xab, (byte)0xe5, (byte)0x87, (byte)0xba, (byte)0xe5, (byte)0x8a, (byte)0x9b, (byte)0x30, (byte)0x31, (byte)0x0d, (byte)0x0a, (byte)0xe3, (byte)0x83, (byte)0x86, (byte)0xe3, (byte)0x82, (byte)0xad, (byte)0xe3, (byte)0x82, (byte)0xb9, (byte)0xe3, (byte)0x83, (byte)0x88, (byte)0xe3, (byte)0x83, (byte)0x95, (byte)0xe3, (byte)0x82, (byte)0xa1, (byte)0xe3, (byte)0x82, (byte)0xa4, (byte)0xe3, (byte)0x83, (byte)0xab, (byte)0xe5, (byte)0x87, (byte)0xba, (byte)0xe5, (byte)0x8a, (byte)0x9b, (byte)0x30, (byte)0x32, (byte)0x0d, (byte)0x0a};

		try {
			//Batch-Schreiben von Binärdaten
			Files.write(path, data);

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

2.2 Geteiltes Schreiben

Dies ist ein Beispielprogramm, das Binärdaten in Teilen in C: / dk / output.dat schreibt.

BinaryFileOutputNioPart.java


package test.nio;

import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 *Schreiben Sie eine Binärdatei
 */
public class BinaryFileOutputNioPart {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Name der Schreibdatei
		Path path = Paths.get("C:/dk", "output.dat");

		//Binärdaten
		byte[] data1 = { (byte)0xe3, (byte)0x83, (byte)0x86, (byte)0xe3, (byte)0x82, (byte)0xad, (byte)0xe3, (byte)0x82, (byte)0xb9, (byte)0xe3, (byte)0x83, (byte)0x88, (byte)0xe3, (byte)0x83, (byte)0x95, (byte)0xe3, (byte)0x82, (byte)0xa1, (byte)0xe3, (byte)0x82, (byte)0xa4, (byte)0xe3, (byte)0x83, (byte)0xab, (byte)0xe5, (byte)0x87, (byte)0xba, (byte)0xe5, (byte)0x8a, (byte)0x9b, (byte)0x30, (byte)0x31, (byte)0x0d, (byte)0x0a};
		byte[] data2 = { (byte)0xe3, (byte)0x83, (byte)0x86, (byte)0xe3, (byte)0x82, (byte)0xad, (byte)0xe3, (byte)0x82, (byte)0xb9, (byte)0xe3, (byte)0x83, (byte)0x88, (byte)0xe3, (byte)0x83, (byte)0x95, (byte)0xe3, (byte)0x82, (byte)0xa1, (byte)0xe3, (byte)0x82, (byte)0xa4, (byte)0xe3, (byte)0x83, (byte)0xab, (byte)0xe5, (byte)0x87, (byte)0xba, (byte)0xe5, (byte)0x8a, (byte)0x9b, (byte)0x30, (byte)0x32, (byte)0x0d, (byte)0x0a};

		//Schreiben von Binärdaten
		try (OutputStream os = Files.newOutputStream(path)) {
			os.write(data1);
			os.write(data2);

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

3. Lesen Sie die Textdatei

3.1 Massenlesung

Dies ist ein Beispielprogramm, das "C: / dk / input.txt" in einem Stapel liest und an die Standardausgabe ausgibt. Wenn Sie in großen Mengen lesen, müssen Sie auf die Größe achten, damit nicht der Speicherplatz knapp wird.

TextFileInputNio.java


package test.nio;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

/**
 *Lesen einer Textdatei
 */
public class TextFileInputNio {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Der Name der gelesenen Datei
		Path path = Paths.get("C:/dk", "input.txt");

		try {

			//Massenlesen von Textdateien
			List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);

			//Geben Sie die gelesene Textdatei in die Standardausgabe aus
			lines.forEach(line -> System.out.println(line));

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

3.2. Geteiltes Lesen (mit BufferedReader)

Dies ist ein Beispielprogramm, das "C: / dk / input.txt" mit BufferedReader liest und an die Standardausgabe ausgibt.

TextFileInputNioPart1.java


package test.nio;

import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 *Lesen einer Textdatei
 */
public class TextFileInputNioPart1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Der Name der gelesenen Datei
		Path path = Paths.get("C:/dk", "input.txt");

		//BufferedReader generieren
		try (BufferedReader br = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {

			String msg;

			//Lesen aus einer Textdatei
			while ((msg = br.readLine()) != null) {

				//Ausgabe auf Standardausgabe
				System.out.println(msg);

			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

3.3. Geteiltes Lesen (mit Stream)

Dies ist ein Beispielprogramm, das "C: / dk / input.txt" als Stream liest und an die Standardausgabe ausgibt.

TextFileInputNioPart2.java


package test.nio;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;

/**
 *Lesen einer Textdatei
 */
public class TextFileInputNioPart2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Der Name der gelesenen Datei
		Path path = Paths.get("C:/dk", "input.txt");

		//Stream-Generierung
		try (Stream<String> lines = Files.lines(path, StandardCharsets.UTF_8)) {

			//Ausgabe auf Standardausgabe
			lines.forEach(line -> System.out.println(line));

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

4. Schreiben einer Textdatei

4.1. Schreiben (mit BufferedWriter)

Dies ist ein Beispielprogramm, das Textdaten mit BufferedWriter in C: / dk / output.txt schreibt.

TextFileOutputNio1.java


package test.nio;

import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 *Schreiben in eine Textdatei
 */
public class TextFileOutputNio1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Name der Schreibdatei
		Path path = Paths.get("C:/dk", "output.txt");

		//Generieren Sie BufferedWriter
		try (BufferedWriter bw = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {

			//In Datei schreiben
			for (int i= 1; i <= 2; i++) {
				bw.write("Textdateiausgabe" + String.format("%02d", i));
				bw.newLine();
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

4.2. Schreiben (mit PrintWriter)

Dies ist ein Beispielprogramm, das mit PrintWriter Textdaten in C: / dk / output.txt schreibt.

TextFileOutputNio2.java


package test.nio;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 *Schreiben in eine Textdatei
 */
public class TextFileOutputNio2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		//Name der Schreibdatei
		Path path = Paths.get("C:/dk", "output.txt");

		try (
			//Generieren Sie PrintWriter
			BufferedWriter bw = Files.newBufferedWriter(path, StandardCharsets.UTF_8);
			PrintWriter pw = new PrintWriter(bw);
		) {
			//In Datei schreiben
			for (int i= 1; i <= 2; i++) {
				pw.println("Textdateiausgabe" + String.format("%02d", i));
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

das ist alles

Recommended Posts

Beispielprogramm für die Eingabe / Ausgabe von Java-Dateien (jdk1.8 oder höher)
Schreiben wir die Eingabe / Ausgabe von Java-Dateien mit NIO
[Java 7 oder höher] Verhindert das Auslassen des temporären Löschens von Dateien
Beispiel für eine Java-Standardprotokollausgabe
Protokollausgabe in Datei in Java
Beispiel für eine EXCEL-Dateiaktualisierung mit JAVA
Eingabe / Ausgabe von Java-Dateien, die über den historischen Hintergrund verwendet werden können
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
So debuggen Sie Java 9 oder höher remote
Beispiel zum Entpacken einer gz-Datei in Java
Ich kann mich nicht an die Eingabe / Ausgabe von Textdateien in Java erinnern, also habe ich sie zusammengefasst.
Beispiel für eine Gegenmaßnahme gegen NullPointerException (optional) für Java8 oder höher
Lesen Sie den Hinweis zur Dateikopie von Java 1.7 oder höher
Beispiel für die Ausgabe eines Parameterprotokollprotokolls Java & Spring MVC
Die Tomcat 8.5-Protokollausgabe wurde durch Log4j2.8 oder höher ersetzt