在 Java 中將文字附加到另外文字檔案

Mohammad Irfan 2023年1月30日 2021年10月2日
  1. 使用 Java 中的 FileOutputStream 類將文字附加到文字檔案
  2. 使用 Java 中的 FileWriter 類將文字附加到文字檔案
  3. 使用 Java 中的 BufferedWriter 類將文字附加到文字檔案
  4. 使用 Java 中的 Files 類將文字附加到文字檔案
  5. 在 Java 中將文字附加到文字檔案
在 Java 中將文字附加到另外文字檔案

本教程介紹瞭如何在 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 File

相關文章 - Java IO