是否忽略System.out.println()调用以及未添加到ArrayList中的元素?

时间:2017-05-17 20:09:16

标签: java arraylist bufferedreader println

我目前正在开发一个程序,用于从文本文件中读取信息,并使用Apache的POI将其输出到电子表格中。

让我告诉你我有什么

    ExcelFile ef = new ExcelFile(file, "the destination");

ExcelFileObject的构造函数:

    public ExcelFile(File file, String fp){
    System.out.println("Entered ExcelFile constructor");
    util = new ExcelUtilities();
    this.filepath = fp;
    this.data = util.readFromFile(file);
}

然后是readFromFile方法:

public ArrayList<InputData> readFromFile(File file){
    System.out.println("Entered readFromFile in ExcelUtilities");
    ArrayList<InputData> data = new ArrayList<InputData>();
    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line = "";
        while((line = br.readLine()) != null){
            if(line.length() > 0){
                System.out.println(line);
                int x = Integer.parseInt(br.readLine());
                System.out.println(x);
                int y = Integer.parseInt(br.readLine());
                System.out.println(y);
                data.add(new InputData(line, x, y)); //Not adding the first thing read in for some odd reason.
            }
        }
        br.close();
        return data;
    }catch (NumberFormatException e) {
        e.printStackTrace();
        return null;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

我遇到的问题是,正确格式化的.txt文件中的第一个对象没有被添加到ArrayList数据中。当我在调试器中运行时(使用Eclipse),我注意到它正在读取第一行,x和y值但从未实际将对象存储在data中。

然后我遇到了一个更奇怪的问题。我添加了System.out.println()语句作为另一个级别的验证,正确读取了文件中的数据,甚至没有打印到控制台上!我尝试运行另一个包含println()的项目,它们工作正常。

所以,我猜主要的问题是为什么不是文件中的第一个主菜被添加到ArrayList中?接下来是为什么不在Eclipse的控制台上显示println()调用?

输出中的选定框是应放置“Hello”的位置。

Sample Input

Output

0 个答案:

没有答案