Java 从txt文件读取后出现奇怪的字符

Java 从txt文件读取后出现奇怪的字符,java,inputstream,bufferedreader,Java,Inputstream,Bufferedreader,我有一个包含三行整数的txt文件,将它们添加到列表后,我在第一个索引的开头发现一个奇怪的字符。我使用了InputStream、BufferedReader和StringBuilder来读取文件。我尝试在多个地方使用println语句进行调试,但仍然无法找出该字符的来源 File selectedFile = fileChooser.getSelectedFile(); inputStream = new FileInputStream(selectedF

我有一个包含三行整数的txt文件,将它们添加到列表后,我在第一个索引的开头发现一个奇怪的字符。我使用了InputStream、BufferedReader和StringBuilder来读取文件。我尝试在多个地方使用println语句进行调试,但仍然无法找出该字符的来源

 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构造函数并选择您的字符集