假设我有一个文本文件,我正在输入文字......
File file = new File("example.txt");
Scanner inputFile = new Scanner(file);
如果我想引用我要做的下一行文字
inputfile.nextLine();
假设我想再次引用同一行文本。有像“currentLine()”方法吗?我还能做什么?
一般情况下,假设我要打开文件并参考第3行文字或第150行或其他什么,如何让扫描仪读取该特定行?
答案 0 :(得分:1)
如果您想逐行处理文件,扫描仪才有用。
如果您愿意,可以将每一行存储在集合中以供将来参考。
或者你可以使用Commons IO,例如检索特定行:
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)
以您建议的方式引用该行的每一行。在我们知道你要做什么之前,很难再提出任何建议。
答案 1 :(得分:1)
没有currentLine()方法。您可以将当前行存储在temp var String currLine = inputfile.nextLine();
中,也可以创建自己的方法。
你可以这样做:
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;
}