天天看點

黑馬程式員_I/O流總結

------- android教育訓練、java教育訓練、期待與您交流! ----------

一 IO流的三種分類方式

 1.按流的方向可分為:輸入流和輸出流

 2.按流的資料機關不同分為:位元組流和字元流

 3.按流的功能不同分為:節點流和處理流

二 IO流的四大抽象類:

 字元流: Reader Writer

 位元組流: InputStream outputStream

三 InputStream的基本方法

 int read() throws IOException 讀取一個位元組以整數形式傳回,如果傳回-1則已到輸入流的末尾,

 void close() 關閉流釋放記憶體資源.

 long skip (long n) 跳過n個位元組不讀.

四 OutputStream 的基本方法

 void write(int b) 向輸出流寫入一個位元組資料

 void flush( )  将輸出流中緩沖的資料全部寫出到目的地

五 Writer的基本方法

 void write(int c) 想輸出流吸入一個字元資料

 void write(String str) 将一個字元串中的字元寫入到輸入流

void write(String str,int offset,int length) 将一個字元串從offset開始的length個字元寫入到輸出流

 void  flush ( ) 将輸出流中緩沖的資料全部寫出到目的地

六 Reader 的基本方法

 int read( ) 讀取一個字元以整數形式傳回如果傳回-1則代表已到輸入流的末尾

七 通路檔案

 FileInputStream和FileOutputStream繼承基類用于向檔案中輸入輸出位元組

 FileReader和FileWriter繼承基類用于向檔案中輸入輸出字元

八 緩沖流

 BufferedReader:提供了readLine方法用于高效讀取一行字元串

 BufferedWriter:提供了newLine用于寫入一個行分隔符 也就是換行

 BufferedInputStream:是一個帶有緩沖區域的InputStream

 BufferedOutputStream:是一個帶有緩沖區的OutputStream

九 轉換流:主要作用将位元組流轉換成字元流

 轉換流在構造時可以指定其編碼集合

 編碼

 InputStreamReader需要和InputStream套接

 OutputStreamWriter需要和OutputStream套接

 例:OutputStreamWriter osw = new OutputStreamWriter (new FileOutputStream(檔案路徑))

 方法例:osw.getEncoding();獲得流的編碼方式

例子:

import java.io.*;

class  IoDemo
{
	public static void main(String[] args) throws IOException
	{
		//擷取鍵盤錄入對象。
		//将位元組流對象轉成字元流對象,使用轉換流。InputStreamReader		
		//為了提高效率,将字元串進行緩沖區技術高效操作。使用BufferedReader
		//鍵盤的最常見寫法。
		BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
		String line = null;

		while((line=bufr.readLine())!=null)
		{
			if("over".equals(line))
				break;
			bufw.write(line.toUpperCase());
			bufw.newLine();
			bufw.flush();
		}

		bufr.close();
           
}