程序员社区

Java IO教程 --- 用Java追加、拼接文件

今天我们将研究如何在java中附加到文件。Java append to file 是一种常见的Java IO操作。例如,每当我们将某些内容打印到服务器日志时,它都会附加到现有文件中。

Java追加到文件

我们可以使用以下类在java中附加到文件。

  1. Java附加到文件使用 FileWriter
  2. Java 将内容附加到现有文件中 BufferedWriter
  3. 使用在java中将文本附加到文件 PrintWriter
  4. 使用附加到java中的文件 FileOutputStream

file

如果您正在处理文本数据并且写入操作的次数较少,请使用 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();

使用在java中将文本附加到文件 PrintWriter

我们还可以使用 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();

使用附加到java中的文件 FileOutputStream

当数据是原始数据、二进制数据、图像、视频等时,您应该使用FileOutputStream将数据附加到文件中。

OutputStream os = new FileOutputStream(new File("append.txt"), true);
os.write("data".getBytes(), 0, "data".length());
os.close();

Java 追加到文件示例

这是最终的 java append to file 程序,显示了我们上面讨论的所有不同选项。

package com.journaldev.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/pankaj/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();
            }
        }
    }

}

这就是在java程序中追加到文件的全部内容。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Java IO教程 --- 用Java追加、拼接文件

一个分享Java & Python知识的社区