[問題]Java IO的read

作者: lueichun (no anonymous)   2014-11-05 15:55:53
我在java io的範例code上看到這一段code:
while((str = bufIn.readLine()) != null)
//或是while((i = bufIn.read()) != -1)
{
......
}
這段code的意思是如果inputstream有read到資料
while loop就會繼續跑下去
我想問的是(str = bufIn.readLine())這段code
本身就代表著字串內容??
不然為何(str = bufIn.readLine()) 可以!= null
這樣寫感覺像是這段code可以等於讀到的字串,然後read完後就等於空字串
(就是read完後:((str = bufIn.readLine())==null??)
為何不寫成先做str = bufIn.readLine()
然後檢查str是否!=null
是的話迴圈繼續執行
不是的話就跳出迴圈呢
不懂將這段code濃縮成一行的意義??
另外想再請問
bufferedReader BufferedWriter這些緩衝用class
是只能跟處理字元型別資料的class
例如fileWriter FileReader搭配使用嗎
還是也可以跟處理位元型別的class
例如fileinputStream FileOutStream共用呢??
感謝~~
作者: swpoker (swpoker)   2014-11-05 16:46:00
for(String r=in.readLine();r!=null;r=in.readLine())我習慣這樣寫~宣告在裡面沒想到可以很順利的處理第一行的BOM問題~~XD
作者: ssccg (23)   2014-11-05 19:38:00
有BufferedInputStream/BufferedOutputStreamReader/Writer就是處理字元

Links booklink

Contact Us: admin [ a t ] ucptt.com