Manipulação de Arquivo TXT

Opa Galera…
Estou com grande dificuldade em ler um arquivo TXT em java, ele funciona assim:
O programa gera um Txt em formato todo diferente, eu gostaria de ler o txt ja organizado pelo Java…

Ele gera assim

[b]CLIPS> (reset)
CLIPS> (run)

CLIPS> (reset)
CLIPS> (run)

[color=red]The Engine Diagnosis Expert System

Does the engine start (yes/no)? sim
Does the engine start (yes/no)? no
Does the engine rotate (yes/no)? no
Is the battery charged (yes/no)? no

Suggested Repair:

Charge the battery.[/color] "[/b]

Gostaria que ele filtrasse o arquivo, lendo somente a parte em vermelha.

Alguem poderia dar alguma dica?

Lembrando que varia a forma que o arquivo é gerado…se tiver possibilidade de eu colocar algum marcador, sem problemas!

Abraços

depende do formato do arquivo.

é Html?

se for basta vc ver o código fonte e pegar as tags HTML e filtrar o arquivo.

[quote=Felagund]depende do formato do arquivo.

é Html?

se for basta vc ver o código fonte e pegar as tags HTML e filtrar o arquivo.[/quote]

Opa…
Na Verdade é um Arquivo TXT mesmo, eu gero o TXT com um Shell, só que no Txt aparece lixo, gostaria de algo que dissese para importar somente oque seja diferente da letra tal, no inicio, é possivel?

Ora, mas é bem simples. Basta ler todas as linhas, mas descartar as que começam com o tal lixo (algo como if (linha.startsWith ("CLIPS>")) … )

[color=darkblue] Quando você lê o arquivo ele gera um Array é só você ler o Array e quando for igual as Strings que você não deseja passar uma String em “” : [/color]

   int count = 0;
   while((linha = reader.readLine()) != null){
	            String[] leitura = linha.split(";");

	            if(leitura[count].equals("String")){
                       leitura[count] = "";
	            }
          count++;
}

[color=darkblue] Espero ter ajudado, caso isso não funcione para você, ainda tem outra opção, que é você buscar pela String da linha, quando você lê a linha inteira, você pega a String que não quer e usa o método : [/color]

String teste = "Teste de String";
teste.replaceAll("Teste de String", "");

oi pessoal

Estou participando desse forum justamente para aprender mais com todos vocês, a tão famosa linguagem JAVA, espero contar com a ajuda de todos.

Um grande abraço.

Uma implementação um pouquinho mais OO, deixando em objetos distintos as tarefas de:

  1. Abrir, ler e fechar o arquivo: FileDecoder
  2. Para cada linha lida, ela é o que procuro?: FileContentFilter
  3. O que fazer ao ler uma linha que procuro?: FileContentCallback

Abraços!

[code]import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileDecoder {
private BufferedReader file;

public FileDecoder(String filename) {
	try {
		file = new BufferedReader(new FileReader(filename));
	} catch (FileNotFoundException e) {
		throw new IllegalArgumentException(e);
	}
}

public void decode(FileContentFilter filter, FileContentCallback callback) {
	try {
		String line = file.readLine();
		
		while (line != null) {
			if (filter.lineMatch(line)) {
				callback.processLine(line, file);
			}
			line = file.readLine();
		}
		
	} catch (IOException e) {
		throw new RuntimeException(e);
	} finally {
		try {
			file.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

public static void main(String[] args) throws Exception {
	// abre o arquivo p/ leitura
	FileDecoder fileDecoder = new FileDecoder("bin/data.txt");
	
	// processa todas as linhas do arquivo
	fileDecoder.decode(new FileContentFilter() {
		public boolean lineMatch(String line) {
			String cleanLine = line.trim();
			return !"".equals(cleanLine) && !cleanLine.startsWith("CLIPS>");
		}
	}, new FileContentCallback() {
		public void processLine(String currentLine, BufferedReader file)
				throws IOException {
			System.out.println(currentLine);
		}
	});
}

}

interface FileContentFilter {
boolean lineMatch(String line);
}

interface FileContentCallback {
void processLine(String currentLine, BufferedReader file) throws IOException;
}
[/code]

Opa Erdanielli,

desculpe a demora, mas este exemplo ajudou muito a entender.

Obrigadão