问题描述:

let's say I have a text file I'm inputing text from...

File file = new File("example.txt");

Scanner inputFile = new Scanner(file);

if I want to reference the next line of text I would do

inputfile.nextLine();

  1. Let's say I want to reference that same line of text again. Is there like a "currentLine()" method? What else could I do?

  2. In general, let's say I want to open the file and refer to the 3rd line of text or the 150th line or whatever, how do I get the Scanner to read that specific line?

网友答案:
  1. There is no currentLine() method. You can store current line in the temp var String currLine = inputfile.nextLine(); or you can create your own method.

  2. You can do it this way:


public static void main(String[] args) throws FileNotFoundException{
  Scanner inputFile = new Scanner(new File("example.txt"));
  System.out.println(getLine(150, inputFile));
}
public static String getLine(int line, Scanner input){
  String result = "";
  int lineNr = 1;
  while(input.hasNextLine() && lineNr <= line){
    result = input.nextLine();
    lineNr++;
  }
  return result;
}
网友答案:

Scanner is only good if you want to process a file line by line.

You could store each line in a collection for future reference, if you wanted to.

Alternatively you could use Commons IO, e.g. to retrieve a specific line:

List<String> lines = FileUtils.readLines(file);
lines.get(150);

http://commons.apache.org/io/api-1.4/org/apache/commons/io/FileUtils.html#readLines(java.io.File)

and refer to each line of the line in the manner you suggest. It's hard to suggest anything else until we know what you're trying to do.

相关阅读:
Top