Java I/O 流透過生產者-消費者模型提供了讀取和寫入資料的機制,簡化了資料來源和目的地之間的通訊。流類型分為位元組流和字元流,輸入流用於讀取數據,輸出流用於寫入資料。關鍵概念包括緩衝、標記、讀取/寫入方法和檔案句柄。實戰案例:從檔案中讀取文字並複製到另一個檔案時,FileInputStream 作為輸入流,FileOutputStream 作為輸出流,while 循環讀取位元組並寫入,flush() 方法刷新緩衝區。
Java I/O 流的原理與關鍵概念
簡介
Java I/O 流機制提供了讀取和寫入資料的抽象,簡化了不同類型資料來源和目的地之間的通訊。它基於 生產者-消費者 模型,其中生產者產生數據,而消費者接收並處理它。
流的類型
位元組流: 讀取和寫入原始位元組數據,如圖片或檔案。
字元流: 讀取和寫入字元數據,由 Char 類型表示,例如文字或程式碼。
輸入與輸出流
輸入流: 用於從資料來源讀取資料。
輸出流: 用於將資料寫入到目的地。
關鍵概念
read()
、write()
和flush()
。 實戰案例:
考慮以下Java 程式碼從檔案讀取文字並將其複製到另一個檔案:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyFile { public static void main(String[] args) { // 源文件 File sourceFile = new File("source.txt"); // 目标文件 File targetFile = new File("target.txt"); // 创建文件输入流 try (FileInputStream fis = new FileInputStream(sourceFile); // 创建文件输出流 FileOutputStream fos = new FileOutputStream(targetFile)) { // 循环读取源文件中的字节 int b; while ((b = fis.read()) != -1) { // 将读取到的字节写入目标文件 fos.write(b); } // 刷新目标文件缓冲区 fos.flush(); } catch (IOException e) { e.printStackTrace(); } } }
在這個範例中:
FileInputStream
用作輸入流,用於從source.txt
檔案中讀取位元組。 FileOutputStream
用作 輸出流,用於將位元組寫入到 target.txt
檔案中。 while
循環讀取 source.txt
中的位元組並將其寫入 target.txt
。 flush()
方法刷新 target.txt
的緩衝區,確保所有位元組都已寫入檔案。 以上是Java I/O流的原理與關鍵概念是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!