【问题标题】:What am I doing wrong loading a .txt file?我在加载 .txt 文件时做错了什么?
【发布时间】:2013-02-12 12:45:15
【问题描述】:
try (BufferedReader br = new BufferedReader(new FileReader("Templates/format/test.txt")))
{

    String sCurrentLine;

    while ((sCurrentLine = br.readLine()) != null) {
        System.out.println(sCurrentLine.toString().trim());
        if(sCurrentLine.toString().trim().equalsIgnoreCase("Test2")){
            System.out.println("HI: "+sCurrentLine.toString().trim());
        }

    }

} catch (IOException e) {
    e.printStackTrace();
} 

我正在尝试获取 .txt 的内容,但都没有

if(sCurrentLine.toString().trim().equalsIgnoreCase("Test2")){
    System.out.println("HI: "+sCurrentLine.toString().trim());
}

if(sCurrentLine.toString().trim().equals("Test2")){
    System.out.println("HI: "+sCurrentLine.toString().trim());
}

有效。

这是txt的内容:

Text1
Text2
Text3

我也不明白这是为什么:System.out.println(sCurrentLine.toString().trim()); 导致控制台中的以下输出。为什么我会在开头出现中断和符号?

þÿ T e s t 1
T e s t 2
T e s t 3

感谢您在这里帮助我!

【问题讨论】:

  • 看起来像编码问题。您是创建文件还是只是尝试处理它?
  • 这只是一个想法,会不会开头有BOM
  • 听起来像是编码问题,看看这个:stackoverflow.com/questions/13748613/…
  • 你能在while循环中使用第一个sysout打印文件的内容吗?
  • 一个不会导致您的问题的小问题:为什么要在字符串上调用 toString()

标签: java string equals bufferedreader


【解决方案1】:

将您的 .txt 文件转换为不带 BOM 的 UTF-8。您可以使用 Notepad++ 或任何其他高级文本编辑器来做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2015-11-29
    • 2011-02-06
    相关资源
    最近更新 更多