java基礎知識回顧之javaIO類總結

 

java IO體系圖java

 

 

IO流的操做規律總結:數組

1,明確體系:
數據源:InputStream ,Reader
數據匯:OutputStream,Writer網絡

2,明確數據:由於數據分兩種:字節,字符。
數據源:是不是純文本數據呢?
是:Reader 字符輸入流
否:InputStream  字節輸入流

數據匯:是不是純文本數據呢?
是:Writer  字符輸出流
否:OutputStream  字節輸出流、socket

到這裏就能夠明確具體要使用哪個體系了,剩下的就是要明確使用這個體系中的哪一個對象。

編碼

3.明確設備:spa

數據源:
鍵盤:System.in  鍵盤輸入
硬盤:FileXXX     硬盤上面
內存:數組。  
網絡:socket socket.getInputStream();3d

數據匯:
控制檯:System.out
硬盤:FileXXX
內存:數組
網絡:socket socket.getOutputStream();對象

4,明確額外功能:
1,須要轉換?是,使用轉換流。InputStreamReader OutputStreamWriterblog

2,須要高效?是,使用緩衝區。Buffered
3,須要其餘?內存

-------------------------------------------------------------------------------------------------------------------------------------

1,複製一個文本文件。

  1,明確體系:
    源:InputStream ,Reader
    目的:OutputStream ,Writer
  2,明確數據:
    源:是純文本嗎?是 Reader
    目的;是純文本嗎?是 Writer
  3,明確設備:
    源:硬盤上的一個文件。 FileReader
    目的:硬盤上的一個文件。FileWriter
    FileReader fr = new FileReader("a.txt");
    FileWriter fw = new FileWriter("b.txt");
  4,須要額外功能嗎?
    須要,高效,使用buffer
    BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));
    BufferedWriter bufw = new BufferedWriter(new FileWriter("b.txt"));

 

2,讀取鍵盤錄入,將數據存儲到一個文件中。
  1,明確體系:
  源:InputStream ,Reader
  目的:OutputStream ,Writer
  2,明確數據:
  源:是純文本嗎?是 Reader
  目的;是純文本嗎?是 Writer
  3,明確設備:
  源:鍵盤,System.in
  目的:硬盤,FileWriter
  InputStream in = System.in;
  FileWriter fw = new FileWriter("a.txt");
      4,須要額外功能嗎?
  須要,由於源明確的體系時Reader。但是源的設備是System.in。
  因此爲了方便於操做文本數據,將源轉成字符流。須要轉換流。InputStreamReader
  InputStreamReader isr = new InputStreamReader(System.in);
  FileWriter fw = new FileWriter("a.txt");
  須要高效不?須要。Buffer
  BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));

3,讀取一個文本文件,將數據展示在控制檯上。
  1,明確體系:
  源:InputStream ,Reader
  目的:OutputStream ,Writer
  2,明確數據:
  源:是純文本嗎?是 Reader
  目的;是純文本嗎?是 Writer
  3,明確設備:
  源:硬盤文件,FileReader。
  目的:控制檯:System.out。
  FileReader fr = new FileReader("a.txt");
  OutputStream out = System.out;
  4,須要額外功能?
  由於源是文本數據,肯定是Writer體系。因此爲了方便操做字符數據,
  須要使用字符流,可是目的又是一個字節輸出流。
  須要一個轉換流,OutputStreamWriter:字符向字節轉化
  FileReader fr = new FileReader("a.txt");
  OutputStreamWriter osw = new OutputStreamWriter(System.out);

  須要高效嗎?須要。
  BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));
  BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));

 

4,讀取鍵盤錄入,將數據展示在控制檯上。
  1,明確體系:
  源:InputStream ,Reader
  目的:OutputStream ,Writer
  2,明確數據:
  源:是純文本嗎?是 Reader
  目的;是純文本嗎?是 Writer
  3,明確設備:
  源:鍵盤:System.in
  目的:控制檯:System.out
  InputStream in = System.in;
  OutputStream out = System.out;
  4,須要額外功能嗎?
  由於處理的數據是文本數據,同時肯定是字符流體系。
  爲方便操做字符數據的能夠將源和目的都轉成字符流。使用轉換流。
  爲了提升效率,使用Buffer
  BufferedReader bufr =new BufferedReader(new InputStreamReader(Systme.in));
  BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));

5,讀取一個文本文件,將文件按照指定的編碼表UTF-8進行存儲,保存到另外一個文件中。
  1,明確體系:
  源:InputStream ,Reader
  目的:OutputStream ,Writer
  2,明確數據:
  源:是純文本嗎?是 Reader
  目的;是純文本嗎?是 Writer
  3,明確設備:
  源:硬盤:FileReader.
  目的:硬盤:FileWriter
  FileReader fr = new FileReader("a.txt");
  FileWriter fw = new FileWriter("b.txt");
  4,額外功能:
  注意:目的中雖然是一個文件,可是須要指定編碼表。
  而直接操做文本文件的FileWriter自己內置的是本地默認碼錶。沒法明確具體指定碼錶。
  這時就須要轉換功能。OutputStreamWriter,而這個轉換流須要接受一個字節輸出流,並且
  對應的目的是一個文件。這時就使用字節輸出流中的操做文件的流對象。FileOutputStream.
  FileReader fr = new FileReader("a.txt");
  OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"),"UTF-8");

  須要高效嗎?
  BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));
  BufferedWriter bufw =
  new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt"),"UTF-8"));

目前爲止,10個流對象重點掌握。
  字符流:
  FileReader
  FileWriter

  BufferedReader
  BufferedWriter

  InputStreamReader
  OutputStreamWrier
  字節流:

  FileInputStream
  FileOutputStream

  BufferedInputStream 
  BufferedOutputStream

相關文章
相關標籤/搜索