gpt4 book ai didi

java - Eclipse 中的文件阅读器

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:15 24 4
gpt4 key购买 nike

谁能告诉我为什么我的代码从不读取文件的第二行?如果文件(例如 .txt 文件)中的第二行从新行开始并缩进该行,则它不会读取它。但是如果它在新行中并且没有缩进,它将读取。第三行读起来也很好。与 while 循环有关吗?

Scanner keyboard = new Scanner (System.in);
System.out.println("Input the file name");

String fileName = keyboard.nextLine();
File input = new File (fileName);
BufferedReader reader = new BufferedReader(new FileReader(input));
String content = reader.readLine();
content.replaceAll("\\s+","");
while (reader.readLine() != null) {
content = content + reader.readLine();
}

System.out.println(content);

最佳答案

请参阅下面代码中我的评论。

String content = reader.readLine();          //here you read a line
content.replaceAll("\\s+","");
while (reader.readLine() != null) //here you read a line (once per loop iteration)
{
content = content + reader.readLine(); //here you read a line (once per loop iteration)
}

如您所见,您正在 while 循环开头读取第二行,并在继续之前检查它是否等于 null。但是,您对该值不执行任何操作,它就会丢失。更好的解决方案如下所示:

String content = ""
String input = reader.readLine();
while (input != null)
{
content = content + input;
input = reader.readLine();
}

通过将行存储在变量中并检查变量是否为空,这可以避免读取然后丢弃所有其他行的问题。

关于java - Eclipse 中的文件阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928921/

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