【发布时间】:2012-09-28 00:08:52
【问题描述】:
我编写了一些简单的 Java 代码来从文本文件中读取字符串,将它们组合起来,然后将它们写回。 (输出没有变化的简化版本见下面的sn-p)
问题在于输入文件和输出文件中的特定字符(- 和 ...)不同。破折号和省略号在输出文件中显示为特殊的、不可读的字符。我不打算更改它们,并且我认为应该使用一些特殊的编码来避免这种情况。
我在 Windows 下运行。奇怪的字符出现在多个编辑器(记事本、写字板和 Word)中,而不是破折号和省略号。
BufferedReader inFile = new BufferedReader(new FileReader("in.txt"));
PrintWriter out = new PrintWriter(new FileWriter("out.txt"));
String line;
while ((line=inFile.readLine()) != null)
{
out.println(line);
}
【问题讨论】:
-
没有输入文件的格式信息不够
-
你使用的怪异字符远远超出了 ASCII 编码的 255 个码位。例如,
...(水平省略号)映射到 Unicode 代码点 2606(十六进制),并且没有等效的 ASCII 表示。尝试在您选择的编辑器(记事本、写字板和 Word、Eclipse)中使用 Unicode 字体,以便您能够正确查看它们。 -
字符在输入文件中正常显示。一旦我将它读入 Java 字符串并将该字符串写入输出文件,它们看起来就像特殊字符。我只想照原样写出来。