Re: [問題] 有關FileInuptStream...

看板java作者 (小安)時間19年前 (2006/04/28 19:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/7 (看更多)
※ 引述《seekyou (galagala~￾N )》之銘言: : FileInputStream fis = new FileInputStream("Sample.txt"); //建立fis物件 : int is=fis.read(text); //讀取檔案的位元組 : FileReader fir = new FileReader("Sample.txt"); : BufferedReader bf= new BufferedReader(fir); //讀取檔案行數 : int sum=0; : while((st=bf.readLine())!= null ) { : count++; : sum+=st.length(); : } : System.out.println("Sample.txt含有"+is+"個位元組 , "+sum+"個字元 : , "+count+"列資料"); : } : } : 上面是一個完整的小程式,在讀取一個文字檔內容的位元組,字元數和資料行數 : 執行黃色那兩行時,位元組為358. : 如果改寫成int is=fis.read(); 則為164個位元組 你可能需要先查詢一下 API fis.read(text) 回傳的 int 意思是實際讀進了多少 byte 你的檔案總共就是 384 byte,所以 is 就是 384 雖然你沒有提到 sum,我想我就順便講一下 sum 的值為 177,因為 Java 是使用 Unicode, 所以不管是中文字和英文字都算一個 char 177 指的就是 char 的數量 你可以拿 ( 384 - 6*2 - 8 ) / 2 ^^ ^^ 換行("\r\n") 半形字 至於 fis.read() 則只是讀進一個 char 但因為你的檔案已經到了結尾 所以會讀進什麼東西是不可預測的 跟檔案的長度完全無關 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.64.234
文章代碼(AID): #14KVv3-A (java)
文章代碼(AID): #14KVv3-A (java)