2016-08-07 4 views
-2

Можно ли использовать сканер для начала чтения файла из заданной строки.Начать чтение из определенной строки с помощью сканера

Я хочу начать чтение со второй строки до конца файла и исключить первую строку.

Я попробовал эту линию, но она не работает

String line = input.next("pass the line that I want to start reading from"); 

Любая помощь, пожалуйста,

Благодарности

+4

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine() –

ответ

0

Используйте логическое значение, что ловит момент значение "стартер", что вызывает начало значений считывания.

public static final int STARTER = "3"; 

public static void main(String[] args) { 
    boolean read = false; 
    try { 
     Scanner s = new Scanner(new File("input.txt")); 
     while (s.hasNextLine()) { 
      String line = s.nextLine(); 
      if (!read) { 
       if (Integer.parseInt(line) == STARTER) { 
        read = true; 
       } 
      } else { 
       System.out.println(line); // or save to a list or ... 
      } 
     } 
    } catch (Exception e){ 
     System.out.println(e); 
    } 
} 
+0

Спасибо за ваш ответ, это работает, если я хочу исключить определенную строку в том же коде и в то же время при чтении файла, мне нужно отправить строку в качестве параметра функции, которая начнет считывать файл с этой строки – Shaimaa

1

Вы действительно можете создать метод, чтобы пропустить первые N строк файла, то прочитайте файл в обычном режиме.

Вот пример:

import java.io.File; 
import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 
     try { 
      Scanner s = new Scanner(new File("input.txt")); 
      skipLines(s, 3);//skip 3 lines of input.txt file 
      //read the rest of the file 
      while (s.hasNextLine()) { 
       String line = s.nextLine(); 
       // use lines here 
       System.out.println(line); 
      } 
     }catch (Exception e){ 
     } 
    } 

    public static void skipLines(Scanner s,int lineNum){ 
     for(int i = 0; i < lineNum;i++){ 
      if(s.hasNextLine())s.nextLine(); 
     } 
    } 
} 

input.txt:

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 

выход:

4 
5 
6 
7 
8 
9 
10 
+0

Спасибо большое за ваш ответ – Shaimaa

+0

Вы можете :) Если ваша проблема решена этим ответом, просто отметьте ее как правильную. –

Смежные вопросы