Java是一種面向對象的編程語言,它廣泛應用于各種領域。在Java中,IO流是一項重要的功能,能夠讓程序能夠讀寫外部文件或者網絡流。Java中的IO流分為節點流和處理流兩種,下面我們詳細講解一下。
1. 節點流
節點流是基本的I/O接口,也叫做低級流。它們提供了對物理節點設備的訪問能力,如文件、網絡和內存等。
FileInputStream fis = null; try { fis = new FileInputStream("example.txt"); int data = fis.read(); while (data != -1) { System.out.print((char) data); data = fis.read(); } } catch (IOException e) { System.out.println("文件讀取失敗" + e.getMessage()); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
這段代碼使用了FileInputStream來讀取同級目錄下的example.txt文件,通過read()方法讀取并打印出文件中的數據。注意,在讀取文件時需要捕獲IOException異常并確保關閉流資源。
2. 處理流
處理流是對節點流的封裝,也叫做高級流。它們增強了I/O操作的功能和性能,常用的如Buffered等。
BufferedReader br = null; try { br = new BufferedReader(new FileReader("example.txt")); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.out.println("文件讀取失敗" + e.getMessage()); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } }
這段代碼使用了BufferedReader處理流來讀取文件,相較于節點流需要一個個字節讀取,BufferedReader可以按照行讀取,提高了效率。同樣地,我們需要確保關流操作。
總的來說,Java中的節點流和處理流各有優缺點,節點流提供了最基礎的IO操作,而處理流可以對節點流進行增強和改進。程序員根據不同的需求選擇合適的流來進行IO操作,能夠有效提高程序的性能和效率。