Java 追加到文件

今天我们将研究如何在 Java 中添加到文件. Java 添加到文件是一个常见的 java IO操作。

Java 添加到檔案

我们可以使用以下类来附加到Java中的文件。

  1. Java 附加到使用 FileWriter 2 使用 BufferedWriter 3 使用 PrintWriter 4 附加文本到 Java 中的文件。

java append to file 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 示例。

参考:

Published At
Categories with 技术
Tagged with
comments powered by Disqus