Java - remover o item do arquivo de texto usando arrayList

votos
0

Eu estou tentando remover um item a partir de um arquivo de texto usando um ArrayList. O ArrayList obter de seus valores a partir do arquivo de texto, e em seguida, ele exibe em um ListView.

Eu tenho um menu contextual que aparece, e me dá uma opção para remover o item da lista.

No arquivo de texto, todos os itens estão em uma nova linha.

Como eu vou sobre a remoção de itens específicos do arquivo? O ArrayList irá limpar é auto, e puxar os dados para o ArrayList sempre que a ação foi executada, de modo que é ordenada.

Código para remover item da matriz:

                  int id = info.position;

              for(int i = array.size()-1; i >=0; i--){
                  array.remove(id);
              }
Publicado 12/04/2014 em 14:59
fonte usuário
Em outras línguas...                            


2 respostas

votos
0

Se cada item na ArrayListequivale a cada linha no arquivo, em seguida, basta acompanhar o índice da posição do item excluído na ArrayList. Em seguida, reescrever o arquivo inteiro, exceto que o índice monitorados (que deve ser a mesma linha).

Basicamente, uma vez que você excluir o item de você ArrayList, então basta escrever sobre o arquivo que você percorrer o seu atualizados ArrayList.

Respondeu 12/04/2014 em 15:07
fonte usuário

votos
1

File != ArrayList, ArrayListNão sei nada sobre Filee Filenão sei nada sobre ArrayList.

Uma maneira de fazer o que você quer é reescrever novamente os dados dentro do arquivo quando você precisar dele (quando você excluir um item de um ArrayList, chamar um método que atualiza o TextFile)

Você deve chamá-lo antes ArrayList claro (ou você vai perder todo valor!)

Um exemplo:

List<String> values = new ArrayList<String>();
values.add("A");
values.add("B");
values.add("C");
values.add("D");
values.add("E");
values.add("D");

BufferedWriter fileWriter = null;
try
{
    fileWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("fileName.txt")));

    for (String value : values)
    {
        fileWriter.write(value + System.getProperty("line.separator"));
    }
}
finally
{
    if (fileWriter != null)
        fileWriter.close();
}

Eu acho que é uma forma segura de fazer isso sem depender muito ao fato de que o arquivo não é alterado por outra fonte (de qualquer forma)

Respondeu 12/04/2014 em 15:10
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more