1.扫描电流(与下一个相反)线位置。 2.扫描线X(Java初学者)

时间:2010-10-20 23:40:09

标签: java java.util.scanner

假设我有一个文本文件,我正在输入文字......

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

Scanner inputFile = new Scanner(file);

如果我想引用我要做的下一行文字

inputfile.nextLine();
  1. 假设我想再次引用同一行文本。有像“currentLine()”方法吗?我还能做什么?

  2. 一般情况下,假设我要打开文件并参考第3行文字或第150行或其他什么,如何让扫描仪读取该特定行?

2 个答案:

答案 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)

  1. 没有currentLine()方法。您可以将当前行存储在temp var String currLine = inputfile.nextLine();中,也可以创建自己的方法。

  2. 你可以这样做:

  3. 
    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;
    }