1. 程式人生 > >Java學習日記-----IO流

Java學習日記-----IO流

抽象基類 基類 found 字符串 exit eno 轉換流 otf 節點流

1.java.io包下

  File類:java程序中的此類的一個對象,就對應著一個文件或網絡中的一個資源。

  Flie file1 = new File("D:\\io\\hello.txt");

  File file2 = new File("D:\\IO\\io1");

   >1. File既可以表示一個文件也可以表示一個文件目錄

   >2. File的對象是與平臺無關的

   >3. File類針對於文件或文件目錄,只能進行新建、刪除、重命名、上層目錄等等操作。若涉及到訪問文件內容只能使用IO流來操作。

   >4. 常把File類的對象作為形參傳遞給對應的輸入輸出流的構造器。

2.IO流的結構

  技術分享圖片

3.IO流的劃分

  1)按照流的流向: 輸入 輸出(站在程序的角度)

  2)按照流中的數據的單位不同:字節流 字符流 (純文本文件使用字符流 除此之外使用字節流)

  3)按照流的角色不同: 節點流 處理流 (流直接作用於文件上的是節點流,除此之外都是處理流)

4.重點掌握
* 抽象基類       節點流(文件流)                  緩沖流(處理流的一種,可以提升文件操作的效率)
* InputStream       FileInputStream (int read(byte[] b))     BufferedInputStream (int read(byte[] b))
* OutputStream       FileOutputStream (void write(b,0,len))     BufferedOutputStream (flush()) (void write(b,0,len))
* Reader          FileReader (int read(char[] c))          BufferedReader (readLine()) (int read(char[] c))或String readLine()
* Writer         FileWriter (void write(c,0,len))          BufferedWriter (flush()) (void write(c,0,len)或void write(String str))

註意:從硬盤中讀入一個文件,要求此文件一定存在。若不存在,報FileNotFoundException的異常

從程序中輸入一個文件到硬盤,此文件可以不存在。若不存在,就創建一個,實現輸出。若存在將起覆蓋。

在真正開發時,就是用緩沖流代替節點流。

主要最後要關閉相應的流,先關輸出流,再關輸入流。此操作放在finally中。

5.其他的流

1.轉換流: 實現字節流與字符流之間的轉換

InputStreamReader:輸入時,實現字節流到字符流的轉換,提高操作的效率(前提是:數據是文本文件) =====>解碼:字節數組到字符串

 OutputStreamWriter:輸出時,實現字符流到字節流的轉換。 ===>編碼:字符串到字節數組

例題:

從鍵盤輸入字符串,要求將讀取到的整行字符串轉成大寫輸出。然後繼續進行輸入操作,直至當輸入“e”或者“exit”時,退出程序。

2.標準輸入輸出流 

System.in: The "standard" input stream:從鍵盤輸入數據
System.out:The "standard" output stream:從顯示器輸出數據

3.打印流

4.數據流

5.對象流

6.隨機存取文件流

Java學習日記-----IO流