Um programa java que leia um arquivo html e retorne para o usuário se as tags estão declaradas corretamente ou não

Boa noite, pessoal!
Estou dando os primeiros passos em Java e estou com um problema a resolver que não sei por onde iniciar.
Escreva um programa em Java que leia um ficheiro em HTML e determine se o seu conteúdo é válido ou se contêm erros.
Exemplo:
ABRETAG Estou dentro da tag BEGIN FECHATAG
ABRETAG Aqui vem mais um pedaço de texto. FECHATAG
Esta tag está vazia TAGVAZIA
Aqui tudo bem ABRETAG ABRETAG aqui também.FECHATAG FECHATAG
Aqui há um erro ABRETAG-A FECHATAG-B
Aqui falta qualquer coisa: ABRETAG-A ABRETAG-B FECHATAG-C ABRETAG-D
Output:
Tag vazia <> na linha 3
Tags ABRETAG-A e FECHATAG-B não correspondem.
Tag FECHATAG-C sem tag de início.
Tag ABRETAG-D sem fecho

Agradeço se alguém puder ajudar.

Eu iniciei o código assim:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Tema8_2 {

    public static void main(String[] args) throws Exception {
    	try{

    	     BufferedReader br = new BufferedReader(new FileReader("c:/Java/Teste.html"));

    	     while(br.ready()){
    	    	 boolean isTag = true;
    	    	 String linha = br.readLine();
    	    	 String linhaImp = "";
    	    	 int cont = 0;
    	    	 for(cont = 0; cont < linha.length(); cont++){
    	    	 char letra = linha.charAt(cont);

    	    	         if(letra == '<'){
    	    	         	isTag = true;
    	    	         } else if(!isTag){
    	    	         	linhaImp += letra;
    	    	         } 
    	    	         
    	    	         if(letra == '>'){
    	    	         	isTag = false;
    	    	         }  	   
    	    	     }
    	    	     System.out.println(linhaImp);
    	     }
    	     br.close();
    	  }catch(IOException ioe){
    	     ioe.printStackTrace();
    	  }
    	}

}
Mas aqui apenas apresentada o que há nas linhas html
Esboço do código html:

Teste

Testando um programa em html.

Estou dentro da tag BEGIN
Aqui vem mais um pedaco de texto.
Esta tag está vazia<>
Aqui tudo bem e aqui tambem.
Aqui ha um erro.
Aqui falta qualquer coisa.