gpt4 book ai didi

java - 为什么这个 BufferedReader 返回空字符串而不是 null?

转载 作者:行者123 更新时间:2023-11-30 04:30:48 25 4
gpt4 key购买 nike

我有一个 BufferedReader 迭代 CSV 文件的行;当它到达文件末尾时,它返回以下错误:

线程“main”中的异常 java.lang.NumberFormatException:空字符串
在 sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:992)

如何让读者意识到它已到达文件末尾并且输入为空而不是空?我检查了该文件,最后一行末尾没有空格。

代码:

    File filReadMe = new File(inputFile);
BufferedReader brReadMe = new BufferedReader(new InputStreamReader(new FileInputStream(filReadMe), "UTF-8"));

try
{
String strLine;

while ((strLine = brReadMe.readLine()) != null)
{
System.out.println(strLine);
//place the line into CsvRecordFactory
int record = csv.processLine(strLine, input);
}
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
finally {
//Close the BufferedReader
try {
if (brReadMe != null)
brReadMe.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}

最佳答案

您可以这样简单地修改代码:

while ((strLine = brReadMe.readLine()) != null)
{
if (!strLine.isEmpty()) {
System.out.println(strLine);
//place the line into CsvRecordFactory
int record = csv.processLine(strLine, input);
}
}

这样,您的代码将忽略所有空行,而不仅仅是文件末尾的空行。

关于java - 为什么这个 BufferedReader 返回空字符串而不是 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14694875/

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