我对编程很陌生,在尝试从文本文件中读取数据时遇到了很多麻烦。
我的第一个问题是尝试为我的文件创建一个新的Scanner对象。我找到了一个未找到的文件"除非我在文件对象之后添加了.getAbsolutePath()。
现在,我似乎无法从文件中读取任何数据。当我尝试打印文件中的每一行时,我没有输出。
我认为我只是遗漏了一些非常明显的东西。谁能帮我吗?
public static void main(String[] args) {
File inputFile = new File("menu.txt");
System.out.println("Reading from file" + inputFile);
Scanner inputScanner = new Scanner(inputFile.getAbsolutePath());
String answer;
while (inputScanner.hasNextLine()){
answer = inputScanner.nextLine();
System.out.println(answer);
}
}
编辑:我最初将文件对象传递给我的扫描程序对象的创建,但仍然收到错误。
答案 0 :(得分:0)
您的问题是您尝试使用Scanner
从文件中读取数据,而Scanner
则用于从给定字符串中读取令牌(例如行)。相反,您应该使用Reader
来读取您的文件:
File inputFile = new File("menu.txt");
System.out.println("Reading from file" + inputFile);
BufferedReader inputReader = new BufferedReader(new FileReader(inputFile.getAbsolutePath()));
String answer;
while ((answer = inputReader.readLine()) != null) {
System.out.println(answer);
}
更新如果你真的想要可以使用扫描程序 - 但是你需要将Path
对象传递给构造函数:
File inputFile = new File("menu.txt");
System.out.println("Reading from file" + inputFile);
Scanner inputScanner = new Scanner(inputFile);
String answer;
while (inputScanner.hasNextLine()){
answer = inputScanner.nextLine();
System.out.println(answer);
}
(请注意,我没有测试此代码。)
答案 1 :(得分:-1)
public class Test {
//The file should be in contained within the root of your project.
// When you execute a project in eclipse, the working directory is the most top level of your project.
// Right click your project, click New>File, and make a txt file called "TheGame.txt".
private static final String FILENAME = "menu.txt";
public static void main(String[] args) {
try (BufferedReader inputFile = new BufferedReader(new FileReader(FILENAME))) {
System.out.println("Reading from file" + inputFile);
String answer;
while ((answer = inputFile.readLine()) != null) {
System.out.println(answer);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}