我可以使用java.io
和java.util.Scanner
来阅读文件,但我不知道如何仅使用java.util.Scanner
来阅读文件:
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
String filePath = "C:\\IdeaProjects\\test\\src\\input.txt";
Scanner sc = new Scanner(new File(filePath));
int a, b;
a = sc.nestInt();
b = sc.nextInt();
}
}
有人可以帮忙吗?
答案 0 :(得分:1)
由于Scanner需要一个java.io.File对象,我认为只有在不使用任何java.io类的情况下才能使用Scanner读取。
以下是使用Scanner类读取文件的两种方法 - 使用默认编码和显式编码。这是如何read files in Java的长篇指南的一部分。
扫描仪 - 默认编码
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFile_Scanner_NextLine {
public static void main(String [] pArgs) throws FileNotFoundException {
String fileName = "c:\\temp\\sample-10KB.txt";
File file = new File(fileName);
try (Scanner scanner = new Scanner(file)) {
String line;
boolean hasNextLine = false;
while(hasNextLine = scanner.hasNextLine()) {
line = scanner.nextLine();
System.out.println(line);
}
}
}
}
扫描仪 - 显式编码
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFile_Scanner_NextLine_Encoding {
public static void main(String [] pArgs) throws FileNotFoundException {
String fileName = "c:\\temp\\sample-10KB.txt";
File file = new File(fileName);
//use UTF-8 encoding
try (Scanner scanner = new Scanner(file, "UTF-8")) {
String line;
boolean hasNextLine = false;
while(hasNextLine = scanner.hasNextLine()) {
line = scanner.nextLine();
System.out.println(line);
}
}
}
}
答案 1 :(得分:0)
如果你想在结束前阅读文件:
String filePath = "C:\\IdeaProjects\\test\\src\\input.txt";
File file = new File(filePath);
try {
Scanner sc = new Scanner(file);
while (sc.hasNextLine()) {
int i = sc.nextInt();
System.out.println(i);
}
sc.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
p.s如果每一行只有Integer,我建议你使用
的Integer.parseInt(sc.readLine());
而不是sc.nextInt();
如果你看不懂请发给我文件上下文
答案 2 :(得分:-1)
好吧,如果你使用的是Mac,你可以在终端file.java<input.txt
中输入它并输出到你输入的文件:file.java>output.txt
output.txt
是一个不存在的文件,而input.txt
是一个预先存在的文件。