Java中的字元流與位元組流
位元組流
Java位元組流用於執行8位位元組的輸入和輸出操作。雖然有很多與位元組流相關的類,但最常用的類是**FileInputStream**和**FileOutputStream**。以下是一個使用這兩個類將輸入檔案複製到輸出檔案的示例:
示例
import java.io.*;
public class CopyFile {
public static void main(String args[]) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}現在讓我們建立一個名為**input.txt**的檔案,其內容如下:
This is a test for copy file.
下一步,編譯上述程式並執行它,這將建立一個output.txt檔案,其內容與input.txt中的內容相同。所以讓我們將上述程式碼放在CopyFile.java檔案中並執行以下操作:
$javac CopyFile.java $java CopyFile
字元流
Java **位元組**流用於執行8位位元組的輸入和輸出操作,而Java **字元**流用於執行16位Unicode的輸入和輸出操作。雖然有很多與字元流相關的類,但最常用的類是**FileReader**和**FileWriter**。雖然在內部FileReader使用FileInputStream,FileWriter使用FileOutputStream,但主要區別在於FileReader一次讀取兩個位元組,FileWriter一次寫入兩個位元組。
我們可以重寫上面的示例,它使用這兩個類將輸入檔案(包含Unicode字元)複製到輸出檔案:
示例
import java.io.*;
public class CopyFile {
public static void main(String args[]) throws IOException {
FileReader in = null;
FileWriter out = null;
try {
in = new FileReader("input.txt");
out = new FileWriter("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}現在讓我們建立一個名為**input.txt**的檔案,其內容如下:
This is test for copy file.
下一步,編譯上述程式並執行它,這將建立一個output.txt檔案,其內容與input.txt中的內容相同。所以讓我們將上述程式碼放在CopyFile.java檔案中並執行以下操作:
$javac CopyFile.java $java CopyFile
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP