如何从java中的数组列表和文本文件中删除元素?
how to delete elements from both array list and text file in java?
我有一个数组列表,它从一个文本文件中获取元素,如果我从数组列表中删除一些元素,它们也应该从文件中删除,我该怎么做?
我在某处读到我应该使用临时文件,但我不知道该怎么做。
你应该有包装器 class 来保存 ArrayList
并引用 File
。
在包装器 class 中,您有 load
、 delete
.
等方法
class <className>
{
List arrayList;
File file;
public void load(){
// Load the file content into Arraylist
}
public void delete(){
synchronized(this){
// delete the content from ArrayList and re-write the file
}
}
}
刚刚给了高分
您可以重写/修改文件/创建 tmp 文件,将 org 文件重命名为 .bk 并将 tmp 文件重命名为 org 文件 - 有很多方法可以做到这一点,具体取决于您的要求和 org 的方式文件结构化。
您需要做的是将数组列表中的新元素复制到一个新文件中,或者您可以简单地复制并替换原始文件中的数据,例如您有一个包含数据的文件并且您有一个与文件具有相同数据的数组列表,因此如果您更改数组列表中的元素,请复制并再次替换文件:
class <className>
{
List arrayList;
File file;
//you should initialize the file and the arraylist first
public void reWrite()
{
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
for(Object object : arraylist)
{
bw.write(object);
}
bw.close();
}
}
我有一个数组列表,它从一个文本文件中获取元素,如果我从数组列表中删除一些元素,它们也应该从文件中删除,我该怎么做? 我在某处读到我应该使用临时文件,但我不知道该怎么做。
你应该有包装器 class 来保存 ArrayList
并引用 File
。
在包装器 class 中,您有 load
、 delete
.
class <className>
{
List arrayList;
File file;
public void load(){
// Load the file content into Arraylist
}
public void delete(){
synchronized(this){
// delete the content from ArrayList and re-write the file
}
}
}
刚刚给了高分
您可以重写/修改文件/创建 tmp 文件,将 org 文件重命名为 .bk 并将 tmp 文件重命名为 org 文件 - 有很多方法可以做到这一点,具体取决于您的要求和 org 的方式文件结构化。
您需要做的是将数组列表中的新元素复制到一个新文件中,或者您可以简单地复制并替换原始文件中的数据,例如您有一个包含数据的文件并且您有一个与文件具有相同数据的数组列表,因此如果您更改数组列表中的元素,请复制并再次替换文件:
class <className>
{
List arrayList;
File file;
//you should initialize the file and the arraylist first
public void reWrite()
{
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
for(Object object : arraylist)
{
bw.write(object);
}
bw.close();
}
}