扫描程序通过文件

时间:2015-10-06 09:14:21

标签: java arraylist java.util.scanner

我正在尝试使用扫描仪从文件读入,然后将这些附加到数组。但是当我这样做时,扫描仪似乎正在拾取空行并将这些空白行分配给数组中的索引。

我尝试了几种不同的工作方式无济于事,只是想知道是否有任何问题和新问题为什么会这样做?

文件格式如下:

F:\数据\ SFW3 \文件夹

F:\数据\ SFW3 \文件夹

F:\数据\ SFW3 \文件夹

F:\数据\ SFW3 \文件夹

任何想法都会受到极大的欢迎。

public void scanFiles() throws NoSuchElementException {
    Scanner sc = null;
    System.out.println("Sage 2015 is Installed on this machine");
    int i = 0;

    try {
        String line;
        File companyFile = new File(sageFolders[8] + "\\COMPANY"); 
        sc = new Scanner(new BufferedReader(new FileReader(companyFile)));

        while(sc.hasNextLine()) {
            line = sc.nextLine();
            System.out.println(line);
            System.out.println(i);
            currentFolders.add(i,line);
            System.out.println("At Index" + i + ": " + currentFolders.get(i));
            i++; 
        }

        sc.close();    
    }
    catch(FileNotFoundException e) {
        System.out.println("File not Found: Moving onto next Version"); 
    }
    catch(IOException e) {
        System.out.println("IO Error");
    }
}

2 个答案:

答案 0 :(得分:6)

使用String.trim().length()查看是否为空行,如果不是,则

System.out.println(i);

if (String.trim().length() > 0) {
    currentFolders.add(i,line);
    System.out.println("At Index" + i + ": " + currentFolders.get(i));
}

i++; 

答案 1 :(得分:0)

To achieve your task, try below code:

 while(sc.hasNextLine())
      {
        line = sc.nextLine();
        if(null != line && line.trim().length() > 0){
        System.out.println(line);
        System.out.println(i);
        currentFolders.add(i,line);
        System.out.println("At Index" + i + ": " + currentFolders.get(i));
        i++; 
      }
      }