java - 如何从 ArrayList 中删除存储在外部 txt 文件中的项目

标签 java arraylist iterator bluej

我想知道如何删除 ArrayList 中存储在外部文本文件中的项目。我正在尝试迭代器方法,但我认为我做得不正确。

这是数组列表,它基本上包含响应的文本文件

这个方法允许 txt 文件保存响应的 ArrayList

public void writeAList(ArrayList<String> list, String filename)
    {
        if(list != null) {
            try (FileWriter writer = new FileWriter(filename, true)) {
                for(String item : list) {
                    writer.write(item.trim());
                    writer.write(" ");
                }       
                writer.write("\n");
            }
            catch(IOException e) {
                System.out.println("Problem writing file: " + filename +
                                   " in writeAList");
            }

        }
        else {
            System.out.println("Null list passed to writeAList.");
        }
    }

这是允许从中读取的方法

public ArrayList<String> readAList(String filename)
{
    ArrayList<String> list = new ArrayList<>();
    try (BufferedReader reader =
            new BufferedReader(new FileReader(filename))) {
        String line = reader.readLine();
        while(line != null) {
            list.add(line.trim());
            line = reader.readLine();
        }
    }
    catch(IOException e) {
        System.out.println("Problem reading file: " + filename +
                           " in readAList");
    }
    return list;
}

我分配了一个像这样调用的ArrayList

notRecognised = help.readAList("missed.txt");

我尝试编写以下方法以便能够从文本文件中删除响应,但我认为我写得不正确。

 public String removeResponse(ArrayList<String> words)
{
    Iterator<String> it = words.iterator();
    while(it.hasNext()) {
        String word = it.next();
        String response = notRecognised.get(word);
        if(response.equals (words)) {
            it.remove();
        }
    }

}

最佳答案

文本文件仅存储文本。如果您想编辑它(删除项目),您必须重写它。更适合数据 CRUD(创建、检索、更新、删除)的数据存储是使用数据库,而不是文本文件。

您可以在这里阅读:JDBC Database Access

关于java - 如何从 ArrayList 中删除存储在外部 txt 文件中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34166007/

相关文章:

c++ - 有没有办法从 map 中获取特定的键值对?

java - 如何通过反射或任何其他方式手动触发 javax 验证?

java - 使用 GSON 将 JSON 数组字段转换为类对象

java - 如何从方法返回 ArrayList<String>?

java - Java中将字符串数组解析为Arraylist

PHP 生成器返回类型

Java 垃圾收集器 : Are rows of generic arrays independent objects?

java - 如何将 Java 与 nodejs 集成以处理 CPU 繁重的任务?

android - 按格式化日期列对 sqlite 游标结果进行分组的方法

C++ 字符串迭代器 "find first of"