Java 中位元組流和字元流的必要性是什麼?


Java 提供 I/O 流來讀取和寫入資料,其中流表示輸入源或輸出目標,可以是檔案、I/O 裝置、其他程式等。

根據它們處理的資料,流有兩種型別:

位元組流

這些流以位元組(8 位)處理資料,即位元組流類讀取/寫入 8 位資料。使用它們可以儲存字元、影片、音訊、影像等。

InputStream 和 OutputStream 類(抽象類)是所有輸入/輸出流類的超類:用於讀取/寫入位元組流的類。以下是 Java 提供的位元組陣列流類:

InputStream
OutputStream
FileInputStream
FileOutputStream
ByteArrayInputStream
ByteArrayOutputStream
ObjectInputStream
ObjectOutputStream
PipedInputStream
PipedOutputStream
FilteredInputStream
FilteredOutputStream
BufferedInputStream
BufferedOutputStream
DataInputStream
DataOutputStream

示例

以下 Java 程式使用 FileInputStream 從特定檔案讀取資料,並使用 FileOutputStream 將其寫入另一個檔案。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOStreamsExample {
   public static void main(String args[]) throws IOException {
      //Creating FileInputStream object
      File file = new File("D:/myFile.txt");
      FileInputStream fis = new FileInputStream(file);
      byte bytes[] = new byte[(int) file.length()];
      //Reading data from the file
      fis.read(bytes);
      //Writing data to another file
      File out = new File("D:/CopyOfmyFile.txt");
      FileOutputStream outputStream = new FileOutputStream(out);
      //Writing data to the file
      outputStream.write(bytes);
      outputStream.flush();
      System.out.println("Data successfully written in the specified file");
   }
}

輸出

Data successfully written in the specified file

**字元流** - 這些流以 16 位 Unicode 處理資料。使用它們只能讀取和寫入文字資料。

Reader 和 Writer 類(抽象類)是所有字元流類的超類:用於讀取/寫入字元流的類。以下是 Java 提供的字元陣列流類:

Reader
Writer
BufferedReader
BufferedWriter
CharacterArrayReader
CharacterArrayWriter
StringReader
StringWriter
FileReader
FileWriter
InputStreamReader
InputStreamWriter
FileReader
FileWriter

示例

以下 Java 程式使用 FileReader 從特定檔案讀取資料,並使用 FileWriter 將其寫入另一個檔案。

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IOStreamsExample {
   public static void main(String args[]) throws IOException {
      //Creating FileReader object
      File file = new File("D:/myFile.txt");
      FileReader reader = new FileReader(file);
      char chars[] = new char[(int) file.length()];
      //Reading data from the file
      reader.read(chars);
      //Writing data to another file
      File out = new File("D:/CopyOfmyFile.txt");
      FileWriter writer = new FileWriter(out);
      //Writing data to the file
      writer.write(chars);
      writer.flush();
      System.out.println("Data successfully written in the specified file");
   }
}

輸出

Data successfully written in the specified file

更新於: 2019-08-01

567 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.