Leitura em arquivo

ola estou com uma duvida muito grande. Fiz um prog de leitura em arquivo para poder deixar de perder tempo pois tinha que toda vez ficar copiando e colando era um saco. so que o prog esta funcionando pela metade pois os arquivos que ele le tem este conteudo:

123
no matches

1234
Guj
==>Guj fulano de tal
Length=5000

12345
no matches

inclusive com as quebras de linha. Os arquivos que ele le tem 30000 coisinhas dessas e o que me interessa sao os que nao tem “no matches”.So que meu prog so funciona se nao tiver as quebras de linha por causa do meu while que vou colar daqui a pouco que funciona com a condicao da variavel que leu o arquivo for diferente de nula. Alguem tem uma ideia de uma outra condicao que eu possa fazer para me ajudar?

Meu prog:

import java.io.*;

import javax.swing.JOptionPane;

public class procura {
	public static String lArq,lSeq, dir, nomeNovo,linha, dire, nomeArq;
	static boolean lLixo;
	
	public static void escArq(String grava){
	try{
		BufferedWriter escArq = new BufferedWriter(new FileWriter(dire + nomeArq , true));
		escArq.write(grava);
		escArq.newLine();
		escArq.close();
		}
		catch(Exception e){
		e.printStackTrace();
			}
	}
	
	
	public static void main(String[] args) {
		lSeq= "";
		JOptionPane.showMessageDialog(null, "Bem Vindo");
		dir = JOptionPane.showInputDialog("Digite o Diretorio do Arquivo.\nExemplo:\n C:/Trab/");
		String nome = JOptionPane.showInputDialog("Digite o nome do Arquvio com sua extensão. \nExemplo \nRhgen.fsa");
		dire = JOptionPane.showInputDialog(null, "Digite o caminho do diretorio onde será salvo os resultados: ", "Salvando Resultados", 1);
		nomeArq = JOptionPane.showInputDialog(null, "Digite o nome do arquivo que sera salvo: ", "Salvando Resultados", 1);		
		
		try {
			BufferedReader busca = new BufferedReader(new FileReader(new File(dir + nome)));
			String str= "";
			boolean escreve = false;
		
			while ((str = busca.readLine()) != null) {
					
				
				char c = str.charAt(0);
				
				if (Character.toString(c).equals(">")) {
					//System.out.println(str.toString());
					lArq = str.toString();
					}
				
					else {
						lSeq = lSeq + str;
						String test = "No matches to database";
						 }					
					
					
				if (Character.toString(c).equals("=")) {
					System.out.println("Arquivo encontrado: " + lArq);
					escArq(lArq);
					}
			}		
		}
		catch (IOException e) {
			e.printStackTrace();
		}
		JOptionPane.showMessageDialog(null, "Resultado salvo em: " + dire + nomeArq, "Salvo com sucesso", 1);
	}
}