如何从存储在外部 txt 文件中的 ArrayList 中删除项目
How to remove items from an ArrayList, which are stored in a external txt file
我想知道如何删除存储在外部文本文件中的 ArrayList 中的项。我正在尝试 Iterator 方法,但我认为我做的不正确。
这是arraylist,基本上包含响应的文本文件
此方法允许 txt 文件保存响应的数组列表
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();
}
}
}
无法从文本文件中删除项目。您需要从文件读取到 ArrayList,从 ArrayList 中删除项目并将 ArrayList 再次保存到文本文件。此外,覆盖整个文件有时比尝试从文件中删除单个项目更快。
文本文件只存储文本。如果你想编辑它(删除项目),你必须重写它。更适合数据 CRUD(创建、检索、更新、删除)的数据存储是使用数据库,而不是文本文件。
您可以在此处阅读:JDBC Database Access
我想知道如何删除存储在外部文本文件中的 ArrayList 中的项。我正在尝试 Iterator 方法,但我认为我做的不正确。
这是arraylist,基本上包含响应的文本文件
此方法允许 txt 文件保存响应的数组列表
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();
}
}
}
无法从文本文件中删除项目。您需要从文件读取到 ArrayList,从 ArrayList 中删除项目并将 ArrayList 再次保存到文本文件。此外,覆盖整个文件有时比尝试从文件中删除单个项目更快。
文本文件只存储文本。如果你想编辑它(删除项目),你必须重写它。更适合数据 CRUD(创建、检索、更新、删除)的数据存储是使用数据库,而不是文本文件。
您可以在此处阅读:JDBC Database Access