Erro java.lang.NullPointerException

aee pessoal desenvolvi esse trecho de código no Java aonde tenho uma arquivo txt, eu pego os dados do txt STRING e converto pra int, e em seguida adiciono a um vetor depois imprimo esse vetor direto na console, ele retorna meu vetor correto porém no final do código esta dando esse erro e não descobri como resolver, alguém consegue me ajudar…

package TXT;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class Teste {

public static void main(String[] args) {

String linha = new String();
String nomeArquivo = "C:/Users/mathe/Desktop/teste.txt";
File arquivo = new File(nomeArquivo);

if (arquivo.exists()) {
	try {
		
		
		FileReader LeitorDeArquivo = new FileReader(nomeArquivo);
		BufferedReader BufferDeArquivo = new BufferedReader(LeitorDeArquivo);
		
		while(true) {
			linha = BufferDeArquivo.readLine();
			String[]DadosTXT = linha.split(" "); 
			
			int[]vetor = new int[DadosTXT .length];
				for(int i = 0;i<DadosTXT .length;i++) {
					vetor[i]= Integer.parseInt(DadosTXT[i]);
				}
			
		if(linha==null) {

			break;
			}
		
		for(int i=0; i<vetor.length; i++) {
			System.out.println(vetor[i]);
		}
		
		}
	}catch(Exception e) {
		
		e.printStackTrace();

}
}

}
}

Por quê usar esse if break ao invés de fazer uma lógica no while?

Algo assim:

while (linha != null)
...

Ou até mesmo assim:

while ((linha = BufferDeArquivo.readLine()) != null)
...

Com esse código você removeria esta linha e deixaria bem mais elegante.

Já o nullpointer deve ocorrer porque você só verifica se a linha é igual a null depois de tentar usar métodos dela, se fizer o que falei acima deve resolver, ou pode simplesmente colocar o if break após o linha = BufferDeArquivo.readLine();

while (true) {
    linha = BufferDeArquivo.readLine();
    if (linha == null) {
        break;
    }
    ...
}

deu certo aqui mano, era isso msm mto obrigado vlw