Galera!
Como eu faço para o meu programa pegue um arquivo .txt, leia-o por completo palavra por palavra.
Eu uso o JFileChooser para pegar o arquivo e o BufferedReader para lê-lo (eu acho que é isso).
Mas eu queria que ele pegasse palavra por palavra e armazenasse numa árvore binária de busca. E caso haja palavra repetida ele apenas aumenta o contador de palavas, ou seja, não é armazenado novamente na árvore.
Tenho dois JButtons pra isso, vejam:
O primeiro para achar o arquivo no S.O.
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String caminhoArquivo = "";
JFileChooser arquivo = new JFileChooser();
int retorno = arquivo.showOpenDialog(null);
if(retorno == JFileChooser.APPROVE_OPTION){
caminhoArquivo = arquivo.getSelectedFile().getAbsolutePath();
jLabel2.setText(caminhoArquivo);
} else{
JOptionPane.showMessageDialog(null, "Operação cancelada pelo usuário");
}
}
O segundo para lê-lo
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
if (jRadioButton1.isSelected()) {
try {
File arquivo = new File(jLabel1.getText());
FileReader fileReader = new FileReader(arquivo);
BufferedReader buffer = new BufferedReader(fileReader);
ArrayList<String> ar = new ArrayList<String>();
String line = buffer.readLine();
while (line != null) {
System.out.println(line);
line = buffer.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}