Re: [問題] 讀檔不完整 (ANSI 文字檔)
※ 引述《henry035 (Rex)》之銘言:
: 環境:JDK 1.6、Windows XP
: 讀入的文字檔大約 1MB 左右,存檔編碼是 ANSI code
: 用以下的程式碼做讀檔時,印文字檔案內容到部分就會停下來,
: 而且印的那一行只會印部分,但最後會印出 Done.
: public static void main(String[] args) throws IOException {
: Scanner fin = new Scanner(new File("text.txt"));
: while(fin.hasNext()){
: String str = fin.nextLine();
: System.out.println(str);
: }
: System.out.println("Done.");
: fin.close();
: }
單看上面這邊我會覺得是因為 while 用 hasNext 判斷
然可是讀取用 nextLine , 雖然還沒有想過在怎樣的情
況下會發生這種狀況
next 在抓 空格 or 換行 , nextLine 只抓換行
雖然說有 hasNext 應該會有 hasNextLine....
不過建議先把這邊改成一致再重測看看
不然其實就我用了這麼久 Scanner 應該是不會遇到這個問題才對...
: 如果用記事本另存新檔成 UTF-8,就可以全部讀完檔案,
: 轉成 UTF-8 之後的檔案,再重新存檔成 ANSI 又會停到同樣的位置。
: 猜測可能是因為有中文字元的關係,但停下來的位置並非有中文的那一行,
: 不知道是不因為 Scanner 的 Buffer 讀到有中文字就會停下來?
: (檔案中的中文字都是可以用ANSI呈現)
: 想請問這實際上是什麼問題?
: 如果讀檔格式一定是 ANSI 的話,有什麼好用的處理方式呢?
: 謝謝。
: 題外話:最近執行一隻純C寫的程式,讀檔ANSI沒問題,UTF-8卻讀檔不完整。
不過加上後面這段,上面那個的可能性或許就會變低了 @@
先試著改成一致,在測試看看哪邊有問題吧,如果可以大概描述一下中斷前
後文字檔有沒有甚麼特性
是說現在用輸入檔都習慣 UTF-8 了....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.39.75
推
05/23 16:57, , 1F
05/23 16:57, 1F
推
05/23 17:16, , 2F
05/23 17:16, 2F
推
05/23 19:53, , 3F
05/23 19:53, 3F
→
05/24 01:21, , 4F
05/24 01:21, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):