在 Java 中將位元組寫入檔案
-
在 Java 中使用
FileOutputStream
將位元組寫入檔案 -
使用
java.nio.file
將位元組寫入檔案 -
在 Java 中使用
Apache Commons IO
庫將位元組寫入檔案
該程式演示瞭如何在 Java 中將位元組陣列寫入檔案。可以使用 FileOutputStream
和本文中提到的一些庫來執行此任務。
在 Java 中使用 FileOutputStream
將位元組寫入檔案
Java 中的類 FileOutputStream
是用於將資料或位元組流寫入檔案的輸出流。建構函式 FileOutputStream(File file)
建立一個檔案輸出流以寫入由 File
物件 file
表示的檔案,我們在下面的程式碼中建立了該檔案。
String
型別的變數 s
被傳遞給 getBytes()
方法,該方法將字串轉換為位元組序列並返回位元組陣列。write()
方法將位元組陣列作為引數,並將位元組陣列 b
中的 b.length 個位元組寫入此檔案輸出流。
在給定的路徑上建立了一個副檔名為 .txt
的檔案,如果我們開啟它,我們可以看到與儲存在變數 s
中的字串相同的內容。
import java.io.File;
import java.io.FileOutputStream;
public class ByteToFile {
public static void main(String args[]){
File file = new File("/Users/john/Desktop/demo.txt");
try {
FileOutputStream fout
= new FileOutputStream(file);
String s = "Example of Java program to write Bytes using ByteStream.";
byte b[] = s.getBytes();
fout.write(b);
}catch (Exception e){
e.printStackTrace();
}
}
}
使用 java.nio.file
將位元組寫入檔案
Java NIO ( New I/O)
包由適用於檔案、目錄的靜態方法組成,並且主要適用於 Path
物件。Path.get()
是一種將字串序列或路徑字串轉換為路徑的靜態方法。它只是呼叫 FileSystems.getDefault().getPath()
。
因此,我們可以使用 Files.write()
方法將位元組陣列 b
寫入檔案,方法是將路徑傳遞給檔案,並將位元組陣列轉換為字串。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ByteToFile {
public static void main(String args[]){
Path p = Paths.get("/Users/john/Desktop/demo.txt");
try {
String s = "Write byte array to file using java.nio";
byte b[] = s.getBytes();
Files.write(p, b);
}
catch (IOException ex) {
System.err.format("I/O Error when copying file");
}
}
}
在 Java 中使用 Apache Commons IO
庫將位元組寫入檔案
這個庫的 maven 依賴如下。
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
Apache Commons IO
庫有 FilesUtils 類,它有 writeByteArrayToFile()
方法。此方法採用目標路徑和我們正在寫入的二進位制資料。如果我們的目標目錄或檔案不存在,它們將被建立。如果檔案存在,則在寫入前將其截斷。
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class ByteToFile {
public static void main(String args[]){
{
File file = new File("doc.txt");
byte[] data = "Here, we describe the general principles of photosynthesis".getBytes(StandardCharsets.UTF_8);
try {
FileUtils.writeByteArrayToFile(file, data);
System.out.println("Successfully written data to the file");
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}
輸出:
Successfully written data to the file
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn