Java 中的字符流与字节流\

java programming java8object oriented programming

字节流

Java 字节流用于执行 8 位字节的输入和输出。虽然有许多与字节流相关的类,但最常用的类是 FileInputStreamFileOutputStream。以下是使用这两个类将输入文件复制到输出文件 − 的示例

示例

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 的输入和输出。虽然与字符流相关的类有很多,但最常用的类是 FileReaderFileWriter。虽然在内部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

相关文章