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();
Let's say I want to reference that same line of text again. Is there like a "currentLine()" method? What else could I do?
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?
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.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.
精彩评论