开发者

1. Scanning current (as opposed to next) line location. 2. Scanning line X (Java Beginner)

开发者 https://www.devze.com 2023-01-21 10:13 出处:网络
let\'s say I have a text file I\'m inputing text from... File file = new File(\"example.txt\"); Scanner inputFile = new Scanner(file);

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 开发者_如何学Pythonthe 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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号