Die Anleitung zu Java FileWriter
1. FileWriter
FileWriter ist eine Unterklasse von OutputStreamWriter, es wird zum Schreiben der Textdatei benutzt.
FileWriter hat keine Methoden mehr außer der von OutputStreamWriter geerbten Methoden. Tatsächlich können Sie OutputStreamWriter verwenden um die Zeichen in ein beliebiges Ziel zu schreiben. FileWriter wird allerdings speziell zum Schreiben der Zeichen in die Systemdatei entwickelt.
FileWriter constructors
FileWriter(File file)
FileWriter(FileDescriptor fd)
FileWriter(File file, boolean append)
FileWriter(File file, Charset charset)
FileWriter(File file, Charset charset, boolean append)
FileWriter(String fileName)
FileWriter(String fileName, boolean append)
FileWriter(String fileName, Charset charset)
FileWriter(String fileName, Charset charset, boolean append)
Hinweis: Die Konstruktor mit dem Parameter Charset wurden FileWriter ab der Version Java 11 hinzugefügt. Wenn Sie früheres Java und eine Datei mit der bestimmten Kodierung schreiben möchten, verwenden Sie die Klasse OutputStreamWriter zu ersetzen.
2. Examples
FileWriterEx1.java
package org.o7planning.filewriter.ex;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterEx1 {
public static void main(String[] args) throws IOException {
// Windows: C:/SomeFolder/out-file.txt
File outFile = new File("/Volumes/Data/test/out-file.txt");
outFile.getParentFile().mkdirs();
FileWriter fileWriter = new FileWriter(outFile);
System.out.println("Writer file: " + outFile.getAbsolutePath());
System.out.println("With encoding: " + fileWriter.getEncoding());
fileWriter.write("Line 1");
fileWriter.write("\n");
fileWriter.write("Line 2");
fileWriter.write("\n");
fileWriter.write("Line 3");
fileWriter.close();
}
}
Output:
out-file.txt
Line 1
Line 2
Line 3
Mit FileWriter können Sie die Datei in eine vorhandene Datei schreiben. Wenn die Datei existiert nicht, wird sie erstellt.
FileWriterEx2.java
package org.o7planning.filewriter.ex;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterEx2 {
public static void main(String[] args) throws IOException {
// Windows: C:/SomeFolder/out-file.txt
File outFile = new File("/Volumes/Data/test/out-file.txt");
outFile.getParentFile().mkdirs();
// FileWriter(File outFile, boolean append)
FileWriter fileWriter = new FileWriter(outFile, true);
System.out.println("Writer file: " + outFile.getAbsolutePath());
System.out.println("With encoding: " + fileWriter.getEncoding());
fileWriter.write("Line 4");
fileWriter.write("\n");
fileWriter.append("Line 5").append("\n");
fileWriter.close();
}
}
Z.B: Verwenden Sie FileWriter um eine Datei mit UTF-16 zu schreiben, dann lesen Sie die mit FileInputStream neue geschriebene Datei um die bytes in der Datei anzuzeigen.
FileWriter_UTF16_Ex1.java
package org.o7planning.filewriter.ex;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class FileWriter_UTF16_Ex1 {
// Windows: C:/SomeFolder/out-utf16-file.txt
private static final String filePath = "/Volumes/Data/test/out-utf16-file.txt";
public static void main(String[] args) throws IOException {
System.out.println("--- Write UTF-16 File ---");
write_UTF16_File();
System.out.println("--- Read File as Binary Stream ---");
readAsInputStream();
}
private static void write_UTF16_File() throws IOException {
File outFile = new File(filePath);
outFile.getParentFile().mkdirs();
// FileWriter(File outFile, boolean append)
FileWriter fileWriter = new FileWriter(outFile, StandardCharsets.UTF_16);
fileWriter.write("JP日本-八洲");
fileWriter.close();
}
private static void readAsInputStream() throws IOException {
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
int byteCode;
while ((byteCode = fis.read()) != -1) {
System.out.println((char) byteCode + " " + byteCode);
}
fis.close();
}
}
Output:
--- Write UTF-16 File ---
--- Read File as Binary Stream ---
þ 254
ÿ 255
0
J 74
0
P 80
e 101
å 229
g 103
, 44
0
- 45
Q 81
k 107
m 109
2 50
Unten finden Sie eine Abbildung von bytes im FileWriter und bytes in der von FileWriter geschriebenen Datei:
Die zwei ersten bytes(254,255) in die Datei UTF-16 wird verwendet um zu markieren, dass sie mit einer von UTF-16 kodierten Datei beginnt.
Sie können meine weiteren Artikels über InputStreamReader und OutputStreamWriter lesen um detailiert zu erfahren, wie Java die Kodierungen UTF-16 und UTF-8 liest und schreibt.
Die Anleitungen Java IO
- Die Anleitung zu Java CharArrayWriter
- Die Anleitung zu Java FilterReader
- Die Anleitung zu Java FilterWriter
- Die Anleitung zu Java PrintStream
- Die Anleitung zu Java BufferedReader
- Die Anleitung zu Java BufferedWriter
- Die Anleitung zu Java StringReader
- Die Anleitung zu Java StringWriter
- Die Anleitung zu Java PipedReader
- Die Anleitung zu Java LineNumberReader
- Die Anleitung zu Java PushbackReader
- Die Anleitung zu Java PrintWriter
- Die Anleitung zu Java IO Binary Streams
- Die Anleitung zu Java IO Character Streams
- Die Anleitung zu Java BufferedOutputStream
- Die Anleitung zu Java ByteArrayOutputStream
- Die Anleitung zu Java DataOutputStream
- Die Anleitung zu Java PipedInputStream
- Die Anleitung zu Java OutputStream
- Die Anleitung zu Java ObjectOutputStream
- Die Anleitung zu Java PushbackInputStream
- Die Anleitung zu Java SequenceInputStream
- Die Anleitung zu Java BufferedInputStream
- Die Anleitung zu Java Reader
- Die Anleitung zu Java Writer
- Die Anleitung zu Java FileReader
- Die Anleitung zu Java FileWriter
- Die Anleitung zu Java CharArrayReader
- Die Anleitung zu Java ByteArrayInputStream
- Die Anleitung zu Java DataInputStream
- Die Anleitung zu Java ObjectInputStream
- Die Anleitung zu Java InputStreamReader
- Die Anleitung zu Java OutputStreamWriter
- Die Anleitung zu Java InputStream
- Die Anleitung zu Java FileInputStream
Show More
- Anleitungen Java Servlet/JSP
- Die Anleitungen Java New IO
- Anleitungen Spring Cloud
- Die Anleitungen Oracle Java ADF
- Die Anleitungen Java Collections Framework
- Java Grundlagen
- Die Anleitungen Java Date Time
- Java Open Source Bibliotheken
- Anleitungen Java Web Services
- Die Anleitungen Struts2 Framework
- Anleitungen Spring Boot