gpt4 book ai didi

Java readline() 跳过第二行

转载 作者:行者123 更新时间:2023-12-02 04:01:40 25 4
gpt4 key购买 nike

我有一个我想阅读的问题文件,当它阅读时,我希望它从答案中识别问题并打印它们,每个问题之前有一行“#”字符,代码保留出于某种原因跳过第一个问题?我在这里缺少什么?

代码如下:

     try {
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream(path);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
strLine = br.readLine();
System.out.println(strLine);
// Read File Line By Line
while ((strLine ) != null) {
strLine = strLine.trim();

if ((strLine.length()!=0) && (strLine.charAt(0)=='#' && strLine.charAt(1)=='#')) {

strLine = br.readLine();
System.out.println(strLine);
//questions[q] = strLine;

}

strLine = br.readLine();
}

// Close the input stream
fstream.close();
// System.out.println(questions[0]);

} catch (Exception e) {// Catch exception if any
System.err.println("Error: " + e.getMessage());
}

text file

最佳答案

我怀疑,您读取的文件是带有 BOM 的 UTF-8 格式。

BOM 是第一个字符之前的代码,有助于识别文本文件的正确编码。

BOM 的问题是,它是不可见的并且会干扰读取。带有 BOM 的文本文件可以说不再是文本文件。特别是,如果你读第一行,第一个字符不再是 #,而是不同的东西,因为它是字符 BOM+#

尝试使用指定的显式编码加载文件。 Java 可以在较新的版本中处理 BOM,具体是哪一个不记得了。

BufferedReader br = new BufferedReader(new InputStreamReader(fstream, "UTF-8"));

否则,使用一个像样的文本编辑器,例如notepad++,并将编码更改为不带BOM的UTF-8或ANSI编码(恶心)。

关于Java readline() 跳过第二行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34832536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com