Java如何附加内容到文件呢?

Java-教程王 Java经验 发布时间:2021-04-18 22:13:54 阅读数:14534 1

Java操作文件是我们常用的操作,下文讲述如何附加内容到文件的方法分享,如下所示:

    java附加文件的操作有以下几种方式:

  1. 使用FileWriter附加内容到文件;
  2. 使用BufferedWriter将内容附加到文件;
  3. 使用PrintWriter将文本附加内容到文件;
  4. 使用FileOutputStream附加内容到文件;

注意事项: 
       处理文本文件,笔者建议使用FileWriter,当写入数据量大时,建议使用BufferedWriter
  处理二进制文件,建议使用FileOutputStream 

方式一: 使用FileWriter附加到文件

例:

File file = new File("java265.txt");
FileWriter fr = new FileWriter(file, true);
fr.write("the website is Java265.txt");
fr.close();
 

方式二: 使用BufferedWriter将内容附加到现有文件


File file = new File("java265.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
br.write("the website is Java265.txt");
br.close();
fr.close();
 

方式三: 使用PrintWriter将文本附加内容到文件

File file = new File("java265.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
PrintWriter pr = new PrintWriter(br);
pr.println("the website is Java265.txt");
pr.close();
br.close();
fr.close();
 

方式四: 使用FileOutputStream追加到文件

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

OutputStream os = new FileOutputStream(new File("java265.txt"), true);
os.write("the website is Java265.txt".getBytes(), 0, "the website is Java265.txt".length());
os.close();
 

例:Java附加到文件 

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 testClass{

    /**
     * 将内容附加到文件的示例
     * 
     * @param args
     */
    public static void main(String[] args) {
        String filePath = "D:/tmp/java265.txt";

        String appendText = "the website is java265.com";

        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 {
            // 要附加到文件,需要使用下面的构造函数初始化FileWriter
            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();
            }
        }
    }

  
    private static void appendUsingFileOutputStream(String fileName, String data) {
        OutputStream os = null;
        try {
            // 下面true标志告诉OutputStream追加
            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();
            }
        }
    }

    
    private static void appendUsingBufferedWriter(String filePath, String text, int noOfLines) {
        File file = new File(filePath);
        FileWriter fr = null;
        BufferedWriter br = null;
        try {
            // 要附加到文件,需要使用下面的构造函数初始化FileWriter
            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();
            }
        }
    }

   
    private static void appendUsingFileWriter(String filePath, String text) {
        File file = new File(filePath);
        FileWriter fr = null;
        try {
            // 下面的构造函数参数决定是追加还是覆盖
            fr = new FileWriter(file, true);
            fr.write(text);

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/1618756085301.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者