今天我们将研究如何在 Java 中添加到文件. Java 添加到文件是一个常见的 java IO操作。
Java 添加到檔案
我们可以使用以下类来附加到Java中的文件。
- Java 附加到使用
FileWriter
2 使用BufferedWriter
3 使用PrintWriter
4 附加文本到 Java 中的文件。
If you are working on text data and the number of write operations is less, use FileWriter and use its constructor with append flag value as
true
. If the number of write operations is huge, you should use the BufferedWriter. To append binary or raw stream data to an existing file, you should use FileOutputStream.
Java 附加到使用FileWriter
的文件
以下是用 FileWriter添加到Java中的文件的简短程序。
1File file = new File("append.txt");
2FileWriter fr = new FileWriter(file, true);
3fr.write("data");
4fr.close();
Java 将内容附加到使用BufferedWriter
的现有文件中
1File file = new File("append.txt");
2FileWriter fr = new FileWriter(file, true);
3BufferedWriter br = new BufferedWriter(fr);
4br.write("data");
5
6br.close();
7fr.close();
添加文本到Java中的文件使用PrintWriter
我们还可以使用 PrintWriter 添加到 Java 中的文件。
1File file = new File("append.txt");
2FileWriter fr = new FileWriter(file, true);
3BufferedWriter br = new BufferedWriter(fr);
4PrintWriter pr = new PrintWriter(br);
5pr.println("data");
6pr.close();
7br.close();
8fr.close();
添加到Java中的文件使用FileOutputStream
您应该使用 FileOutputStream将数据附加到文件中,当它是原始数据,二进制数据,图像,视频等。
1OutputStream os = new FileOutputStream(new File("append.txt"), true);
2os.write("data".getBytes(), 0, "data".length());
3os.close();
Java 添加到文件示例
这里是最后的Java附件到文件程序,显示了我们上面讨论的所有不同的选项。
1package com.journaldev.files;
2
3import java.io.BufferedWriter;
4import java.io.File;
5import java.io.FileOutputStream;
6import java.io.FileWriter;
7import java.io.IOException;
8import java.io.OutputStream;
9import java.io.PrintWriter;
10
11public class JavaAppendToFile {
12
13 /**
14 * Java append to file example
15 *
16 * @param args
17 */
18 public static void main(String[] args) {
19 String filePath = "/Users/pankaj/Downloads/append.txt";
20
21 String appendText = "This String will be appended to the file, Byte=0x0A 0xFF";
22
23 appendUsingFileWriter(filePath, appendText);
24
25 appendUsingBufferedWriter(filePath, appendText, 2);
26
27 appendUsingPrintWriter(filePath, appendText);
28
29 appendUsingFileOutputStream(filePath, appendText);
30 }
31
32 private static void appendUsingPrintWriter(String filePath, String text) {
33 File file = new File(filePath);
34 FileWriter fr = null;
35 BufferedWriter br = null;
36 PrintWriter pr = null;
37 try {
38 // to append to file, you need to initialize FileWriter using below constructor
39 fr = new FileWriter(file, true);
40 br = new BufferedWriter(fr);
41 pr = new PrintWriter(br);
42 pr.println(text);
43 } catch (IOException e) {
44 e.printStackTrace();
45 } finally {
46 try {
47 pr.close();
48 br.close();
49 fr.close();
50 } catch (IOException e) {
51 e.printStackTrace();
52 }
53 }
54 }
55
56 /**
57 * Use Stream for java append to file when you are dealing with raw data, binary
58 * data
59 *
60 * @param data
61 */
62 private static void appendUsingFileOutputStream(String fileName, String data) {
63 OutputStream os = null;
64 try {
65 // below true flag tells OutputStream to append
66 os = new FileOutputStream(new File(fileName), true);
67 os.write(data.getBytes(), 0, data.length());
68 } catch (IOException e) {
69 e.printStackTrace();
70 } finally {
71 try {
72 os.close();
73 } catch (IOException e) {
74 e.printStackTrace();
75 }
76 }
77 }
78
79 /**
80 * Use BufferedWriter when number of write operations are more
81 *
82 * @param filePath
83 * @param text
84 * @param noOfLines
85 */
86 private static void appendUsingBufferedWriter(String filePath, String text, int noOfLines) {
87 File file = new File(filePath);
88 FileWriter fr = null;
89 BufferedWriter br = null;
90 try {
91 // to append to file, you need to initialize FileWriter using below constructor
92 fr = new FileWriter(file, true);
93 br = new BufferedWriter(fr);
94 for (int i = 0; i < noOfLines; i++) {
95 br.newLine();
96 // you can use write or append method
97 br.write(text);
98 }
99
100 } catch (IOException e) {
101 e.printStackTrace();
102 } finally {
103 try {
104 br.close();
105 fr.close();
106 } catch (IOException e) {
107 e.printStackTrace();
108 }
109 }
110 }
111
112 /**
113 * Use FileWriter when number of write operations are less
114 *
115 * @param filePath
116 * @param text
117 * @param noOfLines
118 */
119 private static void appendUsingFileWriter(String filePath, String text) {
120 File file = new File(filePath);
121 FileWriter fr = null;
122 try {
123 // Below constructor argument decides whether to append or override
124 fr = new FileWriter(file, true);
125 fr.write(text);
126
127 } catch (IOException e) {
128 e.printStackTrace();
129 } finally {
130 try {
131 fr.close();
132 } catch (IOException e) {
133 e.printStackTrace();
134 }
135 }
136 }
137
138}
这一切都是为了在Java程序中附加到文件。
您可以从我们的 GitHub 存储库中查阅更多 Java IO 示例。
参考: