Java核心技術 卷二(一)
阿新 • • 發佈:2017-09-04
rgs code 一個 dir 字節 per workspace spa 核心技術
書:《Java核心技術 卷二 高級特性 9》
時間:2017.9.4 17:13
1.流
輸入流:可以從其中讀取一個字節序列的對象;抽象類(InputStream)
輸出流:可以向其中寫入一個字節序列的對象;抽象類(OutputStream)
流的來源:文件、網絡連接、內存塊。
面向字節,所以不方便處理Unicode信息(每個字符使用了多個字節)
-->Reader & Writer extends 流(實現兩個字節字符)
InputStream方法:
abstract int read():讀入一個字節,並返回讀入的字節,結束時返回-1.子類需要覆寫此方法。
abstract int write(int b):向某個位置寫出一個字節。
note:這兩個方法在執行時會阻塞線程,直到讀入或寫出完成。
available:檢查當前可讀入的字節數量
flush:將緩沖區的流輸出。
讀寫完成後必須調用close方法關閉流,否則若流過多,將耗盡操作系統資源。
FIleInputStream & FileOutputStream可以提供附著在一個磁盤文件上的輸入流和輸出流。參數為文件名或完整路徑名。
使用System.getProperty("user.dir")獲取當前路徑
System.out.println(System.getProperty("user.dir")); --> D:\WorkSpace\Eclipse\IOTest
完整路徑時我們需要獲取操作系統的操作符,比如windows下:
System.out.println(File.separator); --> /
也可以使用雙反斜杠的寫法:C:\\windows\\123.txt
一個基本的讀文件程序:
import java.io.FileInputStream; public class IOTest { public static void main(String[] args) { try { FileInputStream fileInputStream= new FileInputStream("D:\\WorkSpace\\Eclipse\\IOTest\\123.txt"); int i = fileInputStream.available(); for(int j=0;j<i;j++) { System.out.printf("%c",fileInputStream.read()); } fileInputStream.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Java核心技術 卷二(一)