我正在尝试使用扫描仪从文件读入,然后将这些附加到数组。但是当我这样做时,扫描仪似乎正在拾取空行并将这些空白行分配给数组中的索引。
我尝试了几种不同的工作方式无济于事,只是想知道是否有任何问题和新问题为什么会这样做?
文件格式如下:
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");
}
}
答案 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++;
}
}