Comunque, giusto per sport, ho provato a copiare/incollare il tuo codice iniziale, aggiungendo il minimo necessario a farlo "andare", e mi sono copiato in prova.txt il tuo esempio di file :

<Casa>
Villetta,centro,20000
Appartamento,Periferia,10000
</Casa>
<Barca>
5000,Honda,Motoscato
8000,Suzuki,Piroscafo
5000,Honda,Gommone
</Barca>
<Casa>
Maisonette, centro, 30000
Loft, centro, 50000
</Casa>

Con questo codice :

codice:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Test
{
	public static void main(String[] a) throws IOException{
		BufferedReader br = new BufferedReader(new FileReader("prova.txt"));
		String line = "";
		while((line = br.readLine()) != null){ 
			if (! line.endsWith("0")) {
				if (!line.contains("<")) {
					if (!line.endsWith("R")) {
						System.out.println(line);
					}
				}
			} 
		}
	}
}
L'ouput ottenuto è il seguente :

C:\Users\...>java Test
5000,Honda,Motoscato
8000,Suzuki,Piroscafo
5000,Honda,Gommone


C:\Users\...>


Quindi io non riscontro il problema di cui tu parli con questo codice ...