【问题标题】:Running readLine() function of BufferedReader class returns nothing运行 BufferedReader 类的 readLine() 函数不返回任何内容
【发布时间】:2018-07-25 07:06:12
【问题描述】:

我使用的是 Mac OS,我在其上编写了以下 java 代码:

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.FileReader;

class random9
{
    public static void main(String[] args) throws Exception
    {
        String line = null;
        BufferedReader br = new BufferedReader(new FileReader("/Users/xyz/Desktop/xyz.txt"));  
        br.readLine();
    }
}

当我运行这个文件时,虽然程序运行成功,没有任何错误,但我没有得到输出。

(P.S:这是我在堆栈溢出问题上提出的第一个问题,如果我的问题表述不正确,我深表歉意。)

【问题讨论】:

  • 尝试打印您阅读的内容,例如System.out.println(br.readLine())
  • 您好,欢迎您!尝试将打印添加到您的 br_readLine() 以查看它是否正在打印:)
  • 感谢@Leviand 的建议
  • 感谢@Arnaud 的建议

标签: java bufferedreader readline


【解决方案1】:

您正在通过BufferedReader 从文件中读取一行,但您没有使用它,所以什么也没有发生

你需要用它来存储和制作一些东西,比如打印它

String firstLine = br.readLine();
System.out.println("First line is" + firstLine);
//or simply
System.out.println(br.readLine());

要读取多行文件,您可以不停地读取新行,直到它为空:

String line;
while((line = br.readLine())!=null){
    System.out.println(line); // or something else
}

【讨论】:

  • 感谢您抽出宝贵时间@azro。像魅力一样工作!
  • @mrigankshankar 如果此答案符合您的要求,请不要犹豫,欢迎/接受它
【解决方案2】:

你可以使用

        System.out.println(br.readLine());

或者如果文件包含多于 1 行,那么您可以使用

    String str=null;
    while((str=br.readLine())!=null)
    {
    System.out.println(str);
    }

【讨论】:

  • 谢谢。运行文件后,我又添加了一行以查看它是否仍然有效。它没有,我偶然发现了你的答案。现在可以了。非常感谢:) @Yash
  • 您的解决方案每两行跳过一行
  • @azro 还需要一个版本。我刚刚做完。您现在可以查看答案。
  • @Yash 为什么第一次不放? :p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多