学习如何使用BufferedWriter、PrintWriter、FileOutputStream和Files类在Java中追加数据到文件。在所有示例中,在打开文件以进行写入时,我们传递了第二个参数为true,表示文件需要以追加模式打开。

1.使用NIO Files

使用Files类,我们可以使用其write()函数来写入文件。在内部,write()函数使用OutputStream将字节数组写入文件。

要将内容追加到现有文件中,请在写入内容时使用StandardOpenOption.APPEND。

String textToAppend = "Happy Learning !!"; Path path = Paths.get("c:/temp/samplefile.txt"); Files.write(path, textToAppend.getBytes(), StandardOpenOption.APPEND); 

2. 使用BufferedWriter

BufferedWriter在将数据写入文件之前会将数据缓冲在内部字节数组中,因此它会减少IO操作并提高性能。

要将字符串追加到现有文件中,请在打开写入器时以追加模式打开,并将第二个参数传递为true。

String textToAppend = "Happy Learning !!"; Strinng filePath = "c:/temp/samplefile.txt"; try(FileWriter fw = new FileWriter(filePath, true); BufferedWriter writer = new BufferedWriter(fw);) { writer.write(textToAppend); } 

3. 使用PrintWriter

我们可以使用PrintWriter将格式化的文本写入文件。PrintWriter实现了在PrintStream中找到的所有print()方法,因此我们可以使用在System.out.println()语句中使用的所有格式。

要将内容追加到现有文件中,请在打开写入器时通过将第二个参数传递为true以追加模式打开。

String textToAppend = "Happy Learning !!"; String fileName = "c:/temp/samplefile.txt"; try(FileWriter fileWriter = new FileWriter(fileName, true); PrintWriter printWriter = new PrintWriter(fileWriter);) { printWriter.println(textToAppend); } 

4. 使用FileOutputStream

使用FileOutputStream将二进制数据写入文件。FileOutputStream用于写入原始字节流,如图像数据。对于写入字符流,请考虑使用FileWriter。

要将内容追加到现有文件中,请在打开FileOutputStream时通过将第二个参数传递为true以追加模式打开。

String textToAppend = "rn Happy Learning !!"; String fileName = "c:/temp/samplefile.txt"; try(FileOutputStream outputStream = new FileOutputStream(fileName, true)) { byte[] strToBytes = textToAppend.getBytes(); outputStream.write(strToBytes); }