作者darkk6 (Mr. Pan)
看板java
标题Re: [问题] 读档不完整 (ANSI 文字档)
时间Thu May 23 16:50:45 2013
※ 引述《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
1F:推 henry035:中断後,文字档没有印出来的後面几行有中文字。 05/23 16:57
2F:推 PsMonkey:呜呜... 我最近才遇到输出格式一定得 Big5 的 case 05/23 17:16
3F:推 LPH66:我会想看看那份文字档... 05/23 19:53
4F:→ darkk6:可以提供一下文字档吗XD 想研究看看 05/24 01:21