Java中的I/O流分為節點流和處理流兩種類型。節點流代表了數據源或者目的地,而處理流則通過連接到節點流來對數據進行處理。
節點流包括四種類型:字節流、字符流、節點流和隨機存取文件流。其中,字節流以字節為單位讀寫數據,常用的類包括InputStream
和OutputStream
;字符流以字符為單位讀寫數據,常用的類包括Reader
和Writer
;節點流可以直接連接到數據源或目的地,常用的類包括FileInputStream
和FileOutputStream
;隨機存取文件流則可以在文件中隨機訪問數據,常用的類包括RandomAccessFile
。
處理流則是對節點流的增強,提供了更高級別、更豐富的數據處理功能。常用的處理流包括緩沖流、數據流、對象流、序列化流和轉換流等。緩沖流可以提高讀寫效率,常用的類包括BufferedInputStream
和BufferedOutputStream
;數據流可以支持對基本類型的二進制數據進行讀寫,常用的類包括DataInputStream
和DataOutputStream
;對象流可以支持對Java對象進行序列化和反序列化,常用的類包括ObjectInputStream
和ObjectOutputStream
;序列化流可以將數據轉換為字節序列進行傳輸或存儲,常用的類包括ByteArrayInputStream
和ByteArrayOutputStream
;轉換流可以支持將字節流和字符流進行互換,常用的類包括InputStreamReader
和OutputStreamWriter
。
// 示例代碼:使用節點流和處理流從文件中讀取數據
try {
FileInputStream fis = new FileInputStream("test.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
InputStreamReader isr = new InputStreamReader(bis);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
} catch (IOException e) {
System.err.println("Failed to read from file");
e.printStackTrace();
}
上一篇php is_a()漏洞
下一篇java的重載和覆蓋