在 Java 中將文字附加到另外文字檔案
-
使用 Java 中的
FileOutputStream
類將文字附加到文字檔案 -
使用 Java 中的
FileWriter
類將文字附加到文字檔案 -
使用 Java 中的
BufferedWriter
類將文字附加到文字檔案 -
使用 Java 中的
Files
類將文字附加到文字檔案 - 在 Java 中將文字附加到文字檔案
本教程介紹瞭如何在 Java 中向一個現有的文字檔案追加文字。我們還列出了一些示例程式碼以更好地指導你。
讀取和寫入是你在處理檔案時可以執行的兩項最基本的操作。在 Java 中有多種方法可以將資料寫入或附加到檔案中。在本文中,我們將瞭解附加到文字檔案的四種不同方式。
使用 Java 中的 FileOutputStream
類將文字附加到文字檔案
FileOutputStream
類用於將二進位制資料寫入檔案。它主要用於 int
或 float
等原始資料型別,但它也可用於編寫面向字元的資料。
字串在寫入之前首先需要轉換為位元組陣列;為此,你可以使用 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
。完成此過程是因為 BufferedWriter
比 FileWriter
高效得多。
當我們有多個寫操作時,BufferedWriter
比 FileWriter
更受歡迎。它使用內部緩衝儲存器來儲存必須附加到檔案中的資料。當此緩衝區已滿,或者我們不再有任何其他內容要附加時,BufferedWriter
將寫入實際檔案。
它將大塊資料從其緩衝區寫入檔案,而不是頻繁寫入;他導致較少的系統呼叫。因此,它比普通的 FileWriter
高效得多。
但是如果我們只有一個寫操作,那麼 BufferedWriter
會在寫過程中新增另一個步驟。所以,最好只使用 FileWriter
。
要使用 BufferedWriter
,我們首先需要一個 FileWriter
物件,我們將把它傳遞給 BufferedWriter
的建構函式。確保對附加標誌使用 true
。
以下程式碼演示了 BufferedWriter
在 Java 中的工作方式。
import java.io.BufferedWriter;
import java.io.FileWriter;
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 提供了多種檔案處理選項。我們可以使用 FileOutputStream
、FileWriter
、BufferedWriter
或 Files
實用程式類將資料附加到檔案中。
對於 FileOutputStream
和 Files
實用程式類,我們首先需要將字串轉換為位元組陣列,然後將其傳遞給 write()
方法。
當我們必須多次將少量資料寫入同一個檔案時,首選 BufferedWriter
。另一方面,FileWriter
和 Files
實用程式類將為大量寫入進行多個系統呼叫;這會降低它們的整體效能。