reading input till EOF in java

女生的网名这么多〃 提交于 2020-01-20 02:47:05

问题


In C++ if I wish to read input till the EOF I can do it in the following manner

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

I can then run this code as ./a.out < input.txt. What is the java equivalent of this code?


回答1:


You can do this:

Scanner s = new Scanner(System.in);
while (s.hasNextInt()) {
    A[i] = s.nextInt();
    i++;
}



回答2:


// 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
}

Let me know if you run into difficulties.




回答3:


Here is Java equivalent code using BufferedReader and FileReader classes.

  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);  
             }
  }
}



回答4:


 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);
   }



回答5:


Here is Java equivalent code using BufferedReader and FileReader classes.

  import java.io.BufferedReader;
  import java.io.FileReader;
  import java.io.IOException;

  public class SmallFileReader {
        public static void main(String[] args) throws IOException {  

Option 1:
String fileName = args[0];
BufferedReader br = new BufferedReader(new FileReader(fileName));
Option 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);  
             }
  }
}  

I made little modification to @Vallabh Code. @tom You can use the first option, if you want to input the file name through command line.
java SmallFileReader Hello.txt
Option 2 will ask you the file name when you run the file.




回答6:


The only thing that really works for me (you don't even have to create a file)

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



回答7:


A simple solution would be to use Scanner class.

See snipet below:

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {

        Scanner s = new Scanner(System.in);
        while(s.hasNextLine())
        {
            String line = s.nextLine();
            System.out.println(line);
        }
    }
}



回答8:


Here is my Java equivalent code to read input until End-of-File:

import java.util.Scanner;

public class EndOfFileSolutions {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        for(int i = 1; sc.hasNext()== true; i++){
            System.out.println(i + " " + sc.nextLine());
        }
    }
}

This code will produce output look like below --

Sample Input:

Hello world
I am a file
Read me until end-of-file.

Sample Output:

1 Hello world
2 I am a file
3 Read me until end-of-file.

This answer also works fine to solve Hackerrank EOF problem



来源:https://stackoverflow.com/questions/13927326/reading-input-till-eof-in-java

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!