Java 从txt文件读取后出现奇怪的字符
我有一个包含三行整数的txt文件,将它们添加到列表后,我在第一个索引的开头发现一个奇怪的字符。我使用了InputStream、BufferedReader和StringBuilder来读取文件。我尝试在多个地方使用println语句进行调试,但仍然无法找出该字符的来源Java 从txt文件读取后出现奇怪的字符,java,inputstream,bufferedreader,Java,Inputstream,Bufferedreader,我有一个包含三行整数的txt文件,将它们添加到列表后,我在第一个索引的开头发现一个奇怪的字符。我使用了InputStream、BufferedReader和StringBuilder来读取文件。我尝试在多个地方使用println语句进行调试,但仍然无法找出该字符的来源 File selectedFile = fileChooser.getSelectedFile(); inputStream = new FileInputStream(selectedF
File selectedFile = fileChooser.getSelectedFile();
inputStream = new FileInputStream(selectedFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder out = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
out.append(line);
items.add(line);
}
当我试图将打印列表项的输出复制到此帖子时,不知何故,我所说的字符没有显示出来,因此我将发布一个屏幕截图:
第一个是整个列表的一部分,第二个应该更清楚地显示我所说的字符,它看起来像3前面的一个点。非常感谢您的帮助。您可以通过执行以下操作尝试删除所有控制字符和奇怪字符:
strangeString.replaceAll("\\p{Cntrl}", "");
参考资料:谢谢大家的帮助。问题实际上是在原始的txt文件中,如@coder您是否尝试创建一个新的测试文件并从中读取?它再现了这个问题吗?文本文件有吗?@Seelenvirtuose我不这么认为。@coder我现在觉得自己很笨,我花了几个小时调试整个程序,但出于某种原因我没有想到这一点。我尝试了一个新的测试文件,但字符不见了。非常感谢。您可以尝试使用默认字符集的FileReader。如果不工作,请尝试Inputstream构造函数并选择您的字符集