Java在一行中读取时会增加空格吗?

时间:2014-10-04 19:13:23

标签: java

所以,我以这个程序结束了我的智慧。我正在用Java中的文本文件读书。除非我拥有它所做的所有事情,否则这是显示的最小代码。

            while ((lineIn = myReader.readLine()) != null) {
                System.out.println("LineIn: \""+lineIn+"\"");
                System.out.println("Length: "+lineIn.length());
            }
然而,打印出来的确非常奇怪。该行应为:

001 2014/06/09 09:40:24 0.000

但这就是我得到的:

LineIn: "�2�6�1�8� �2�0�1�4�/�0�7�/�1�0� �2�3�:�1�5�:�0�3� �0�.�0�0�0�" Length: 61

在Stack Overflow上,它实际上显示正常。您可以复制并粘贴" LineIn:etc"进入你的地址栏,看看编号中有几个看不见的空格。我不知道为什么那些,它们是什么,以及Java从哪里获取它们。打开文档,它来自一个简单的文本编辑器,显示没有这样的间距,从文本编辑器复制+粘贴到浏览器地址栏也没有多余的间距。它非常奇特,我希望有人可以提供见解。我在这里拔头发。

3 个答案:

答案 0 :(得分:4)

这可能是由于您的阅读器正在使用的格式和编码,请尝试使用扫描仪。

答案 1 :(得分:4)

看起来您正在读取UTF-16数据,就好像它有8位编码一样。

如果您construct java.io.InputStreamReader,则可以指定输入文字charset,例如" UTF-16"。

答案 2 :(得分:2)

Java肯定没有这样做,它可能是UTF-16编码文件。你可以上传文件或其中的一小部分吗?