Ler determinada linha de um arquivo [Resolvido]

Pessoal, fiz um método para ler um arquivo txt linha a linha. Porém agora eu quero que ele leia somente determinadas linha que comecem por exemplo com 01.

Alguem pode dar um empurrãozinho ?

[code] public static void readFile(String filename) {
try {
File arquivo = new File(filename);
FileInputStream fileInputStream = new FileInputStream(arquivo);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
LineNumberReader lineNumberReader= new LineNumberReader(inputStreamReader);
String linha;
while(lineNumberReader.ready()) {
linha = lineNumberReader.readLine();
System.out.println(linha);

		}
	} catch (FileNotFoundException fileNotFoundException) {
		fileNotFoundException.printStackTrace();
	} catch (IOException ioException) {
		ioException.printStackTrace();
	}[/code]

Eu acho que seria a classe LineNumberReader, mas não achei nada na documentação, ou será q estou cego ? :shock:

Grato

T+

Nem sabia que existia essa classe ehehhe

mas, segundo a documentação,

http://java.sun.com/j2se/1.4.2/docs/api/java/io/LineNumberReader.html

o método setLineNumber() resolve seu problema.

Na verdade, a documentação é bem clara ao dizer que o método setLineNumber não altera a posição do stream, somente o valor retornado por getLineNumber().

Uma das maneiras de se fazer isso é usar um Scanner e montar uma expressão regular. Outra seria continuar lendo linha-a-linha mas só imprimir as linhas que te interessam.

Se nada disso te agradar, dê uma olhada também nas classes RandomAccessFile e FileChannel, elas são outras formas de se lidar com arquivos e podem te ajudar.

É gente, uma coisa tão simples acabamos imaginando algo tão complicado.

Na verdade do meu arquivo txt eu quero extrair as linhas que começam por exemplo por 01.

Acho que é mais facil fazer assim né …

while (lineNumberReader.ready()) { linha = lineNumberReader.readLine(); if (linha.substring(0, 2).equals("01")) { System.out.println(linha); }

Assim ele irá me retornar somente as linhas que satisfaçam o if.

Tão simples … eu eu imaginando algo tão cabuloso

:shock:

Mesmo assim valeu gente !!!

É isso mesmo, vc usou a minha terceira dica: