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
以上是 Java中的字符流与字节流 的全部内容, 来源链接: utcz.com/z/352443.html