Java追加到文件
时间:2020-02-23 14:36:20 来源:igfitidea点击:
今天,我们将研究如何在Java中附加文件。
Java追加到文件是一种常见的Java IO操作。
例如,每当我们将某些内容打印到服务器日志时,它就会被附加到现有文件中。
Java追加到文件
我们可以使用以下类在Java中追加文件。
- Java使用
FileWriter
附加到文件 - Java使用
BufferedWriter
将内容追加到现有文件中 - 使用
PrintWriter
将文本附加到Java文件中 - 使用
FileOutputStream
附加到java中的文件
如果您正在处理文本数据并且写入操作的次数较少,请使用FileWriter并将其构造函数的附加标志值设为true。
如果写入操作的数量很多,则应使用BufferedWriter。
要将二进制或者原始流数据附加到现有文件,应使用FileOutputStream。
Java使用FileWriter
附加到文件
这是使用FileWriter附加到java中文件的简短程序。
稍后,我们将研究完整的Java追加到文件示例程序。
File file = new File("append.txt"); FileWriter fr = new FileWriter(file, true); fr.write("data"); fr.close();
Java使用BufferedWriter
将内容追加到现有文件中
File file = new File("append.txt"); FileWriter fr = new FileWriter(file, true); BufferedWriter br = new BufferedWriter(fr); br.write("data"); br.close(); fr.close();
使用PrintWriter
将文本附加到Java文件中
我们还可以使用PrintWriter附加到java中的文件。
File file = new File("append.txt"); FileWriter fr = new FileWriter(file, true); BufferedWriter br = new BufferedWriter(fr); PrintWriter pr = new PrintWriter(br); pr.println("data"); pr.close(); br.close(); fr.close();
使用FileOutputStream
附加到java中的文件
当原始数据,二进制数据,图像,视频等数据出现时,您应该使用FileOutputStream将数据追加到文件中。
OutputStream os = new FileOutputStream(new File("append.txt"), true); os.write("data".getBytes(), 0, "data".length()); os.close();
Java附加到文件示例
这是文件程序的最后java追加,显示了我们上面讨论的所有不同选项。
package com.theitroad.files; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; public class JavaAppendToFile { /** * Java append to file example * * @param args */ public static void main(String[] args) { String filePath = "/Users/hyman/Downloads/append.txt"; String appendText = "This String will be appended to the file, Byte=0x0A 0xFF"; appendUsingFileWriter(filePath, appendText); appendUsingBufferedWriter(filePath, appendText, 2); appendUsingPrintWriter(filePath, appendText); appendUsingFileOutputStream(filePath, appendText); } private static void appendUsingPrintWriter(String filePath, String text) { File file = new File(filePath); FileWriter fr = null; BufferedWriter br = null; PrintWriter pr = null; try { //to append to file, you need to initialize FileWriter using below constructor fr = new FileWriter(file, true); br = new BufferedWriter(fr); pr = new PrintWriter(br); pr.println(text); } catch (IOException e) { e.printStackTrace(); } finally { try { pr.close(); br.close(); fr.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * Use Stream for java append to file when you are dealing with raw data, binary * data * * @param data */ private static void appendUsingFileOutputStream(String fileName, String data) { OutputStream os = null; try { //below true flag tells OutputStream to append os = new FileOutputStream(new File(fileName), true); os.write(data.getBytes(), 0, data.length()); } catch (IOException e) { e.printStackTrace(); } finally { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * Use BufferedWriter when number of write operations are more * * @param filePath * @param text * @param noOfLines */ private static void appendUsingBufferedWriter(String filePath, String text, int noOfLines) { File file = new File(filePath); FileWriter fr = null; BufferedWriter br = null; try { //to append to file, you need to initialize FileWriter using below constructor fr = new FileWriter(file, true); br = new BufferedWriter(fr); for (int i = 0; i < noOfLines; i++) { br.newLine(); //you can use write or append method br.write(text); } } catch (IOException e) { e.printStackTrace(); } finally { try { br.close(); fr.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * Use FileWriter when number of write operations are less * * @param filePath * @param text * @param noOfLines */ private static void appendUsingFileWriter(String filePath, String text) { File file = new File(filePath); FileWriter fr = null; try { //Below constructor argument decides whether to append or override fr = new FileWriter(file, true); fr.write(text); } catch (IOException e) { e.printStackTrace(); } finally { try { fr.close(); } catch (IOException e) { e.printStackTrace(); } } } }