Java - 从文件读取返回null

时间:2015-02-22 12:10:38

标签: java file

这个问题在堆栈溢出之前已被问过几次,我想强调一下我已经研究过解决方案但尚未克服我的问题。

我有一个程序应该从文件中读取数据并将其存储在数组中。我目前正在运行一些测试以确保正确读取数据,其中一个是到终端的简单输出。每次我想打印数据时,我都会一直得到" null"。

调查问题我将每个数组元素设置为""。所以我初步了解它们。现在终端只显示一个空行。看来文件中的内容没有被读取到数组?

正在阅读的文件内容:

Q1: (A + B)*(A+B) \n 1. A*A + B*B \n 2. A*A +A*B + B*B \n 3. A*A +2*A*B + B*B \n
Q2: (A + B)*(A - B) \n 1. A*A + 2*B*B \n 2. A*A - B*B \n 3. A*A -2*A*B + B*B \n
Q3: sin(x)*sin(x) + cos(x)*cos(x) \n 1. 1 \n 2. 2 \n 3. 3 \n

我如何阅读它(代码片段在方法中):

try 
{
    int i =0;
    String [] line = new String [10];
    for (i=0;i<=9;i++)
    {
        line[i] = "";
    }
    Scanner scanner = new Scanner(new File("questions.txt"));
    scanner.useDelimiter("Q");
    i=0;
    while (scanner.hasNext()) 
    {
        line[i] = scanner.next();
        i++;
        System.out.println("" + line[i]);
    }
}
catch (FileNotFoundException exp)
{
    exp.printStackTrace();
}

2 个答案:

答案 0 :(得分:1)

您在sysOut之前有一个i++;。我认为这就是为什么你没有看到内容阅读。尝试切换这两个语句。

答案 1 :(得分:0)

这是你的问题

  line[i] = scanner.next();
  i++; // Incrementing the Index before printing
  System.out.println("" + line[i]);

试试这个

  line[i] = scanner.next();
  System.out.println("" + line[i++]);