迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中将文本附加到另外文本文件

作者:迹忆客 最近更新:2023/08/14 浏览次数:

本文介绍了如何在 Java 中向一个现有的文本文件追加文本。我们还列出了一些示例代码以更好地指导你。

读取和写入是你在处理文件时可以执行的两项最基本的操作。在 Java 中有多种方法可以将数据写入或附加到文件中。在本文中,我们将了解附加到文本文件的四种不同方式。


使用 Java 中的 FileOutputStream 类将文本附加到文本文件

FileOutputStream 类用于将二进制数据写入文件。它主要用于 intfloat 等原始数据类型,但它也可用于编写面向字符的数据。

字符串在写入之前首先需要转换为字节数组;为此,你可以使用 getBytes() 方法。我们还需要将 true 作为第二个参数传递给它的构造函数。第二个参数用于布尔追加标志,它的完成表明我们正在尝试追加到现有文件。

如果它被忽略,那么 FileOutputStream 类将覆盖文件的内容。如果文件不在上述位置,它将创建一个新文件。

这是一个示例,我们尝试将句子 The quick brown fox jumps over the lazy dog 附加到现有文件中。\r\n 用于在新行的开头插入文本。

import java.io.FileOutputStream;
public class Main
{
    public static void main(String args[])
    {
        try
        {
            String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
            FileOutputStream f = new FileOutputStream(filePath, true);
            String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";    
            byte[] byteArr = lineToAppend.getBytes(); //converting string into byte array
            f.write(byteArr);
            f.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
     }
}

使用 Java 中的 FileWriter 类将文本附加到文本文件

Java FileWriter 类旨在将字符流写入文件。我们可以使用它来将字符或字符串附加到现有文件或新文件中。如果该文件不存在于上述路径中,则会创建一个新文件,并将数据写入此新文件。

与之前的 FileOutputStream 类不同,我们不需要在写入之前将字符串转换为字节。但是,我们还需要将 true 作为第二个参数传递给 FileWriter 构造函数,这表明我们正在尝试附加到现有文件。

如果省略,它将覆盖文件的现有内容。下面的代码演示了如何使用 FileWriter 向现有文件追加一行。

import java.io.FileWriter;
public class SimpleTesting
{
    public static void main(String args[])
    {
        try
        {
            String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
            FileWriter fw = new FileWriter(filePath, true);    
            String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";    
            fw.write(lineToAppend);
            fw.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
     }
}

使用 Java 中的 BufferedWriter 类将文本附加到文本文件

FileWriter 类通常由其他编写器包装,例如 BufferedWriter。完成此过程是因为 BufferedWriterFileWriter 高效得多。

当我们有多个写操作时,BufferedWriterFileWriter 更受欢迎。它使用内部缓冲存储器来存储必须附加到文件中的数据。当此缓冲区已满,或者我们不再有任何其他内容要附加时,BufferedWriter 将写入实际文件。

它将大块数据从其缓冲区写入文件,而不是频繁写入;他导致较少的系统调用。因此,它比普通的 FileWriter 高效得多。

但是如果我们只有一个写操作,那么 BufferedWriter 会在写过程中添加另一个步骤。所以,最好只使用 FileWriter

要使用 BufferedWriter,我们首先需要一个 FileWriter 对象,我们将把它传递给 BufferedWriter 的构造函数。确保对附加标志使用 true

以下代码演示了 BufferedWriter 在 Java 中的工作方式。

import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main
{
    public static void main(String args[])
    {
        try
        {
            String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
            FileWriter fw = new FileWriter(filePath, true); 
            BufferedWriter bw = new BufferedWriter(fw);
            String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";    
            bw.write(lineToAppend);
            bw.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
     }
}

使用 Java 中的 Files 类将文本附加到文本文件

Files 实用程序类是在 Java 7 中添加的,它提供了另一种将数据写入文件的方法;我们使用 Files.write() 方法来做到这一点。此方法需要文件路径,还需要附加字符串的字节数组。

我们还需要指定 StandardOpenOption.APPEND 将文本附加到现有文件。确保文件存在于给定的路径中;否则,它将返回一个 NoSuchFileException

如果我们必须多次写入同一个文件,这种方法不是首选,因为该文件也会被多次打开和关闭,从而降低整体性能。

下面的代码演示了 Files.write() 方法如何在 Java I/O 中工作。

import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public class Main
{
    public static void main(String args[])
    {
        try
        {
            String file = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
            String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";    
            byte[] byteArr = lineToAppend.getBytes();
            Files.write(Paths.get(file), byteArr, StandardOpenOption.APPEND);
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
     }
}

在 Java 中将文本附加到文本文件

Java 提供了多种文件处理选项。我们可以使用 FileOutputStreamFileWriterBufferedWriterFiles 实用程序类将数据附加到文件中。

对于 FileOutputStreamFiles 实用程序类,我们首先需要将字符串转换为字节数组,然后将其传递给 write() 方法。

当我们必须多次将少量数据写入同一个文件时,首选 BufferedWriter。另一方面,FileWriterFiles 实用程序类将为大量写入进行多个系统调用;这会降低它们的整体性能。

上一篇:Java 打开文件

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java 打开文件

发布时间:2023/08/14 浏览次数:68 分类:Java

在 Java 中有多种打开文件的方法。我们将在本文中讨论其中的几种。在 Java 中使用 Desktop 类打开文件

在 Java 中复制文件

发布时间:2023/08/12 浏览次数:59 分类:Java

本文介绍如何在 Java 中将文件从一个位置复制到另一个位置。

Java 中的文件路径

发布时间:2023/08/12 浏览次数:162 分类:Java

本文讨论了在 Java 中指定文件路径的方法。

.java 和 .class 之间的区别

发布时间:2023/08/12 浏览次数:199 分类:Java

本文讨论 Java 中 .java 和 .class 文件扩展名之间的区别以及简单的 Java 程序如何运行。

在 Java 中将错误日志写入文件

发布时间:2023/08/12 浏览次数:196 分类:Java

在 Java 中保存错误日志的最直接方法是将异常写入文件中。我们可以使用 try 和 catch 块将错误写入使用 FileWriter、BufferedWriter 和 PrintWriter 的文本文件。本文将介绍如何在 Java 中保存错误日志。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便