在java中读取输入直到EOF

在C ++中如果我想读取输入直到EOF,我可以用以下方式完成

while(scanf("%d",&n)) { A[i]=n; i++; } 

然后我可以将此代码作为./a.out <input.txt运行。 这段代码的java等价物是什么?

你可以这样做:

 Scanner s = new Scanner(System.in); while (s.hasNextInt()) { A[i] = s.nextInt(); i++; } 
 // assuming that reader is an instance of java.io.BufferedReader String line = null; while ((line = reader.readLine()) != null) { // do something with every line, one at a time } 

如果遇到困难,请告诉我。

  import java.io.BufferedReader; import java.io.FileReader; BufferedReader br = null; br = new BufferedReader(new FileReader(file)); while ((line = br.readLine()) != null) { } //using Scanner class Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } 

这是使用BufferedReader和FileReader类的Java等效代码。

  import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class SmallFileReader { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new FileReader("Demo.txt")); String line=nul; while( (line=br.readLine()) != null) { System.out.println(line); } } } 

这是使用BufferedReader和FileReader类的Java等效代码。

  import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class SmallFileReader { public static void main(String[] args) throws IOException { 

选项1:
String fileName = args[0];
BufferedReader br = new BufferedReader(new FileReader(fileName));
选项2:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter a file name: ");
String fileName = br.readLine();

  //BufferedReader br = new BufferedReader(new FileReader("Demo.txt")); String line=null; while( (line=br.readLine()) != null) { System.out.println(line); } } } 

我对@Vallabh Code做了一些修改。 @tom如果要通过命令行输入文件名,可以使用第一个选项。
java SmallFileReader Hello.txt
选项2将在您运行文件时询问文件名。

唯一对我有用的东西(你甚至不需要创建文件)

 Scanner read = new Scanner(System.in); String cadena; boolean cond = true; int i =0; while (cond){ cadena = read.nextLine(); if(cadena.isEmpty()) cond = false; }