1. 程式人生 > >處理流(過濾流)

處理流(過濾流)

1、提供更加強大的讀取功能,不是隻能讀取字元或者位元組型別


2、我們希望讀取的不僅僅是一個位元組,而是一個字串、一個double型別的資料等等能夠直接用的資料(比如從磁碟中讀取生命值,直接讀取double型別的是很方便的,但是直接讀取字串是很麻煩的)

FileInputStream:節點流可以從檔案中讀資料,每次讀取一個節點回來,但是讀節點對程式設計師來說沒有太大的用處

DoubleInputStream:希望可以直接讀一個double等一些基本型別回來,讀之後就能直接用了,但是無法直接從檔案中直接讀取資料


3、為了結合上面兩者的優點,也就是既能直接讀取位元組,還能將直接讀取的位元組轉換成自己想要的型別,這就需要組裝

讀的時候(檔案或者其它位置讀寫位元組)

資料來源—FileInputStream(讀位元組)—BufferedInputStream(處理流,buffer+緩衝區,效率更高,但是讀出來的還是位元組)—DataInputStream(處理流,可以讀double等一些基本型別的資料)

將讀出來的位元組轉換成更有用的資料型別

寫的時候(將不同的資料寫到磁碟中)

資料—DATAOutputStream—BufferedOutputStream—FileOutputStream(二進位制往磁碟中寫)

DataInputStream從FileInputStream中讀回的位元組,通過DataInputStream轉換成各種資料型別,返回給s變數。

DataInputStream din=null;
try
{
  din=new DataInputStream(new FileInputStream("E:\\\\workplace\\\\KeJian\\\\unicode.txt"));
}
catch(FileNotFoundException  e)
{
	System.out.println("找不到檔案");
}

問題:DataInputStream中是什麼型別的


4、順序問題,為了轉換成什麼樣,就最後new誰