Java - 使用arrayList从文本文件中删除项目

时间:2014-04-12 13:59:14

标签: java android arraylist

我正在尝试使用arrayList从Text文件中删除项目。 ArrayList从文本文件中获取其值,然后将其显示在ListView中。

我弹出了一个上下文菜单,并为我提供了从列表中删除该项目的选项。

在文本文件中,所有项目都在新行上。

如何从文件中删除特定项目? ArrayList将清除它自己,并在执行操作时将数据拉入ArrayList,以便对其进行排序。

从数组中删除项目的代码:

                  int id = info.position;

              for(int i = array.size()-1; i >=0; i--){
                  array.remove(id);
              }

2 个答案:

答案 0 :(得分:1)

File != ArrayListArrayListFileFile一无所知,对ArrayList一无所知。

执行所需操作的方法是在需要时再次重写文件内的数据(当您从ArrayList删除项目时,调用更新TextFile)的方法< / p>

您应该在 ArrayList之前将其称为(或者您将失去所有价值!)

一个例子:

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();
}

我认为这是一种安全的方法,而不必依赖于文件不被其他来源(以任何方式)更改的事实

答案 1 :(得分:0)

如果ArrayList中的每个项目都等同于文件中的每一行,那么只需跟踪ArrayList中已删除项目的位置索引。然后重写除跟踪索引之外的整个文件(应该是同一行)。

基本上,一旦您从ArrayList删除了该项目,只需在循环浏览更新后的ArrayList时覆盖该文件。