I have a class that I called "database", in this class I can save a note in a txt file to access later. Well the problem is I do not know how to delete some annotation if necessary. I tried to create a new file, then tried to create a ArrayList
to save what I do not want to delete so soon after overwriting in the new file. The problem is that I think I did not right. Can anyone help me?
public class BancoDeDadosEmArquivo {
private File arquivo;
private static final String NOME_DO_ARQUIVO = "notas.txt";
private static final String DIVISOR = "¡";
public BancoDeDadosEmArquivo() {
arquivo = new File(NOME_DO_ARQUIVO);
crieOArquivoSeNaoExistir();
}
public void salvar(Nota nota) {
try {
FileWriter escritor = new FileWriter(arquivo, true);
String linha = nota.getTitulo() + DIVISOR + nota.getTexto();
escritor.write(linha + "\n");
escritor.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public ArrayList<Nota> getNotas() {
ArrayList<Nota> notas = new ArrayList<>();
try {
FileReader leitor = new FileReader(arquivo);
BufferedReader buffer = new BufferedReader(leitor);
String linha = buffer.readLine();
while(linha != null) {
String[] dados = linha.split(DIVISOR);
String titulo = dados[0];
String texto = dados[1];
notas.add(new Nota(titulo, texto));
linha = buffer.readLine();
}
buffer.close();
} catch (FileNotFoundException e) {
System.out.println("Arquivo não encontrado!");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return notas;
}
private void crieOArquivoSeNaoExistir() {
try {
arquivo.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
public void excluirAnotacao(String titulo2, String texto2){
File arquivo = new File("notas.txt");
try {
FileReader fr = new FileReader(arquivo);
BufferedReader br = new BufferedReader (fr); //ler o arquivo
FileWriter fw = new FileWriter(arquivo);
BufferedWriter bw = new BufferedWriter (fw);
String titulo = br.readLine();
String texto = br.readLine();
ArrayList<String> exclusao = new ArrayList();// salva o que eu não quero apagar
while((titulo != null) && (texto != null)) {
if ((titulo.equals(titulo2)) && (texto.equals(texto2)) == false) {
exclusao.add(titulo);
exclusao.add(texto);
}
}
fw.close();
br.close();
FileWriter fw2 = new FileWriter(arquivo, true);
fw2.close();
for(int i = 0; i < exclusao.size(); i ++) {
bw.write (exclusao.get(i) );
bw.newLine();
}
bw.close();
fw.close();
} catch (IOException r) {
}
}
}