我有点问题。 我正在使用NetBeans,我想创建一个程序,它将在* .csv文件中交换字符。
我试图通过几种方式加载文件,但我现在不知道为什么,它不起作用
代码是正确的,可以编译:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class FixRaports {
public static void main(String[] args) throws FileNotFoundException {
String filePath = "D:/ala.csv";
File fileName = new File(filePath);
Scanner scanner = new Scanner(fileName);
while (scanner.hasNextLine())
{
line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
}
}
当然,文件" ala.csv"存在于D:\。
它包含:
Ja "lubie " - placki
bo placki są fajne i "slitasne"
""" My tez je lubimy """
- odpowie ci 'prawie' każdy
"placki ; placki ; ' to jest; to ! """
代码编译正确,但是当我播放应用程序时,它只会返回:
run:
BUILD SUCCESSFUL (total time: 0 seconds)
所以我试过了:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class FixRaports {
public static void main(String[] args) throws FileNotFoundException {
String filePath = "D:/ala.txt";
File fileName = new File(filePath);
Scanner scanner = new Scanner(fileName);
String line = scanner.nextLine();
System.out.println(line);
scanner.close();
}
}
它返回:
run:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at FixRaports.main(FixRaports.java:14)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
我不明白,为什么NetBeans会返回"找不到任何行" ,当文件" ala.csv"包含几行?
我做错了什么?
答案 0 :(得分:0)
你的第一个代码没有编译:行
line = scanner.nextLine();
无法正常工作,因为变量行未定义。替换为
String line = scanner.nextLine();
正如您在第二个示例中所做的那样,代码是正确的。
至于为什么扫描仪没有返回一行:当扫描仪找不到所需的令牌(在你的情况下是换行符)时,抛出NoSuchElementException。如果文件包含换行符,请检查您的文件。
最后请注意,在您的问题中,您指的是ala.csv,但在您的代码中,您打开了ala.txt文件。或许您刚创建了一个新文件,当然不包含换行。