Como ler apenas a linha 20 de um txt

7 respostas
A

isso foi apenas um exemplo tenho um arquivo txt
e quero pegar apenas a linha 20 dele como fazer?
tenho apenas o codigo de ler comun porem ler apenas a linha não consigo de maneira nenhuma

7 Respostas

R

você pode usar uma variável como contador no seu código de leitura de arquivo

A

isso soh faria eu saber em que linha o que eu quero está
isso eu ja tentei não deu certo

A

Creates a random access file stream to read from.

http://docs.oracle.com/javase/6/docs/api/java/io/RandomAccessFile.html

A

nem desisto

L
angelopppp:
isso foi apenas um exemplo tenho um arquivo txt e quero pegar apenas a linha 20 dele como fazer? tenho apenas o codigo de ler comun porem ler apenas a linha não consigo de maneira nenhuma

Boa noite Angelo,

Para ler um arquivo de texto, você já deve ter implementado o metódo de leitura. Para pegar a linha 20, implementa um contador. Por exemplo:
import java.io.*;
import javax.swing.*;

public class Arquivo{
      //Inicializa como null, depois é passado por parâmetro no construtor.
      private File arquivo = null;
      
      //Faz a leitura e retorna a linha nro 20
      public String leitura(){

      FileReader reader;
      BufferedReader buffer;
	  String linha = new String();
	   int contador = 0;
	  //tratamento de excecao
	  try{
		  reader = new FileReader(arquivo);
		  buffer = new BufferedReader(reader);
		 		  
		  //faz a leitura na linha
		  linha = buffer.readLine();
		  
		  while(linha != null && contador !=19){
			  linha= buffer.readLine();
			  contador ++;
			  

		  }
		  
      }catch(IOException erro){
			JOptionPane.showMessageDialog(null,"Erro de I/O: " + erro ,
				"Erro",JOptionPane.ERROR_MESSAGE);
	  }
	  if(contador == 19)
	  return linha;
	  else
	  return "";
	}
	
	public Arquivo(File arq){
		this.arquivo = arq;
	}
	
	public static void main(String args[]){
		JOptionPane.showMessageDialog(null,new Arquivo(new File("C:\\novo\\arquivo.txt")).leitura());
	}
}

Abraços,

Q

Vc vai precisar um jar muito bacana.
commons-io-1.1.jar
Ae vc faz assim:

import org.apache.commons.io.FileUtils;
	public static void main(String[] args) throws Exception{
		 List<String> lista = FileUtils.readLines(new File("D:\\converter\\info.txt"), "ISO-8859-1");
		 System.out.println(lista.get(20));
	}

t+

M

Cara, se o texto não for excessivamente grande e você precisar alterar muitas vezes ou pegar linhas do arquivo mais vezes, sugiro que carregue o conteudo do arquivo pra memoria, um ArrayList por exemplo, ai tem liberdade para pegar qualquer dado, e quando for alterar algo, altere na memoria, ai sobrescreva o conteudo do arquivo pelo da memoria.

Criado 20 de dezembro de 2011
Ultima resposta 22 de dez. de 2011
Respostas 7
Participantes 6