[問題] 讀檔不完整 (ANSI 文字檔)
環境: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();
}
如果用記事本另存新檔成 UTF-8,就可以全部讀完檔案,
轉成 UTF-8 之後的檔案,再重新存檔成 ANSI 又會停到同樣的位置。
猜測可能是因為有中文字元的關係,但停下來的位置並非有中文的那一行,
不知道是不因為 Scanner 的 Buffer 讀到有中文字就會停下來?
(檔案中的中文字都是可以用ANSI呈現)
想請問這實際上是什麼問題?
如果讀檔格式一定是 ANSI 的話,有什麼好用的處理方式呢?
謝謝。
題外話:最近執行一隻純C寫的程式,讀檔ANSI沒問題,UTF-8卻讀檔不完整。
http://tinyurl.com/pvm88jf
"*******15-2**********058****"
只會印出
"*******15-2**
就停止了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.14.67.11
推
05/23 10:03, , 1F
05/23 10:03, 1F
推
05/23 11:05, , 2F
05/23 11:05, 2F
推
05/23 11:22, , 3F
05/23 11:22, 3F
→
05/23 11:51, , 4F
05/23 11:51, 4F
→
05/23 15:13, , 5F
05/23 15:13, 5F
→
05/23 16:51, , 6F
05/23 16:51, 6F
→
05/23 16:53, , 7F
05/23 16:53, 7F
→
05/23 17:25, , 8F
05/23 17:25, 8F
→
05/23 17:53, , 9F
05/23 17:53, 9F
→
05/23 22:19, , 10F
05/23 22:19, 10F
→
05/23 22:20, , 11F
05/23 22:20, 11F
→
05/23 22:22, , 12F
05/23 22:22, 12F
→
05/23 22:23, , 13F
05/23 22:23, 13F
→
05/24 08:58, , 14F
05/24 08:58, 14F
→
05/24 14:28, , 15F
05/24 14:28, 15F
→
05/24 14:49, , 16F
05/24 14:49, 16F
→
05/24 14:51, , 17F
05/24 14:51, 17F
→
05/24 14:53, , 18F
05/24 14:53, 18F
※ 編輯: henry035 來自: 163.14.67.11 (05/24 14:53)
→
05/24 14:59, , 19F
05/24 14:59, 19F
→
05/24 22:39, , 20F
05/24 22:39, 20F
→
05/24 23:56, , 21F
05/24 23:56, 21F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):