Como faço para ler um arquivo txt, e popular na Jtable no netbeans listando em cada coluna?

// Listando na jtable
private void exibeDicionario(){
ArrayList meudicionario = cd.retornarTodos();

for (int i = 0; i < 10; i++){
tblDicionario.setValueAt("", i, 0);
tblDicionario.setValueAt("", i, 1);
tblDicionario.setValueAt("", i, 2);
tblDicionario.setValueAt("", i, 3);
}

for (int i = 0; i < meudicionario.size() && meudicionario.get(i) != null; i++){
tblDicionario.setValueAt(meudicionario.get(i).getNumTermo(), i, 0);
tblDicionario.setValueAt(meudicionario.get(i).getTermo(), i, 1);
tblDicionario.setValueAt(meudicionario.get(i).getSignificado(), i, 2);
tblDicionario.setValueAt(meudicionario.get(i).getFonte(), i, 3);
}
}

//Escrevendo no txt
public void listarTxt(){
Path path = Path.of(“C:\Users\User\Documents\NetBeansProjects\MeuDicionario\arquivo.txt”);
try {
if(Files.notExists(path)){
Files.createFile(path);
}
String texto = this.numTermo + “;” + this.termo + “;” + this.significado + “;” + this.fonte + “; \n”;
Files.writeString(path, texto, StandardOpenOption.WRITE, StandardOpenOption.APPEND);
} catch (IOException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
}

//Não consigo escrever no txt e ler clicando no listar, ele somente lista adicionando pela interface
public void lerTxt(){
try{
FileReader f = new FileReader(“arquivo.txt”);
BufferedReader b = new BufferedReader(f);

String linha = b.readLine();
String usearray[] = linha.split(";");

termo = usearray[1];
significado = usearray[2];
fonte = usearray[3];
} catch (IOException e){

}
}

//Botão salvar
private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
// Botão salvar
Dicionario d = new Dicionario();

d.setNumTermo(Integer.parseInt(tfdnumTermo.getText()));
d.setTermo(tfdTermo.getText());
d.setSignificado(tfdSignificado.getText());
d.setFonte(tfdFonte.getText());

if (cd.salvar(d)) {
JOptionPane.showMessageDialog(null, “Termo cadastrado com sucesso!”);
tfdnumTermo.setText("");
tfdTermo.setText("");
tfdSignificado.setText("");
tfdFonte.setText("");
tfdnumTermo.requestFocus();
} else {
JOptionPane.showMessageDialog(null, “Erro ao cadastrar o termo!”);
}
d.listarTxt();
}

Para poder escrever, cria duas classes, uma classe que vai pegar os dados com um construtor e os método getter e setter
e a outra classe com um método que é o salvar.

Classe que terá um método para salvar:

public class Controle{
public void salvar(BufferedWritter bw, Cadastro c){
 try{ 
bw.write(c.getNome() + ";");
bw.write(c.getIdade() + ";\n");
} catch(Exception e){
e.getMessage();
}
}

Classe que terá o construtor e os métodos getter e setter:

public class Modelo{
// As variáveis de instâncias
private String nome;
private String idade;

// O construtor
public Modelo(String nome, String idade){
this.nome = nome;
this.idade = idade;
}

// Os métodos getter e setter
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
public String getIdade(){
return idade;
}
public void setIdade(String idade){
this.idade = idade;
}

Por fim o código que vai dar a função de salvar, insere num botão:

try{

BufferedWritter conexao;
Modelo mdl = new Modelo(CampoDeTexto1_Nome.getText(), CampoDeTexto2_Idade.getText());

// Criação do arquivo txt
conexao = new BufferedWriter(new FileWriter("cadastro.txt", true));

// Instanciando a classe Controle
Controle ctl = new Controle ();
ctl.salvar(conexao, mdl);

conexao.close();

É mais ou menos isso para salvar.

Estou conseguindo escrever no arquivo dessa forma:

public void listarTxt(Dicionario d){
ArrayList meudicionario = new ArrayList<>();

    Path path = Path.of("C:\\Users\\User\\Documents\\NetBeansProjects\\MeuDicionario\\arquivo.txt");
    try {
        if(Files.notExists(path)){
            Files.createFile(path);
        }
        String texto = this.numTermo + ";" + this.termo + ";" + this.significado + ";" + this.fonte + "; \n";
        Files.writeString(path, texto, StandardOpenOption.WRITE, StandardOpenOption.APPEND);
        
    } catch (IOException ex) {
        Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
    }
     
}

Mas o meu problema é a leitura:

public void lerTxt(){
try{
FileReader f = new FileReader(“arquivo.txt”);
BufferedReader b = new BufferedReader(f);

        Integer.parse(numTermo);
        String linha = b.readLine();
        String usearray[] = linha.split(";");
        
        while(linha != null){
            b.readLine();
        }

        tipoInt = usearray[0]; // ele é int e não consigo usar
        termo = usearray[1];
        significado = usearray[2];
        fonte = usearray[3];
        
    } catch (IOException e){
        
    }
}