Ler a última linha de um TXT em Java [RESOLVIDO]

4 respostas
java
P

Galera, estou criando um sistema em que irei gravar em um TXT em ordem de criação várias Ordens de Serviços (OS). Cada número da OS ficará em um linha.
Para criar as OS’s em ordens crescentes, eu pretendo pegar a última linha do TXT e acrescentar +1 em seu número identificador, e logo depois acrescentá-lo no TXT.
EX: se a última OS foi a OS de número 25 (e tem 24 OS’s acima dessa) a próxima, seria 26, pegando a ultima linha (que é 25) e acrescentando +1.
Achei soluções aqui mesmo no GUJ, mas utiliza o SKIP, porém como o arquivo é flexível, não tem tamanho fixo, não daria certo.
Percorrer todo o TXT e pegar a última seria a melhor solução, qual a forma mais prática de fazer isso?
Agradeço desde já.

4 Respostas

E

Para pegar a ultima linha

public static void main(String[] args) {
		String ultimo = "";
		try {
			InputStream is = new FileInputStream("arquivo.txt");
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);

			String line = "";
			while (line != null) {
				line = br.readLine();
				if (line != null) {
					ultimo = line;
				}
			}

			System.out.println(ultimo);
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
A

No commons-io da apache tem a classe ReversedLinesFileReader veja oq ue ela diz:

Reads lines in a file reversely (similar to a BufferedReader, but starting at
the last line). Useful for e.g. searching in log files.

P

Resolvido ! Obrigado galera !
@Eduardo_Maranata10 seu código funcionou certinho! Valeu
@aix Valeu pela dica mano, irei ler sobre !

E

Fico feliz por ter ajudado, Abraço

Criado 16 de fevereiro de 2016
Ultima resposta 18 de fev. de 2016
Respostas 4
Participantes 3