我有一个arraylist从文本文件中获取其元素,如果我从arraylist中删除了一些元素,它们也应该从文件中删除,我该怎么做? 我在某处读到了我应该使用的临时文件,但我不知道该怎么做。
答案 0 :(得分:0)
你应该有包装类来保持ArrayList
并引用File
。
在包装器类中,您有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文件 - 有很多方法可以执行此操作,具体取决于您的要求以及组织文件的结构
答案 1 :(得分:0)
您需要做的是将数组列表中的新元素复制到新文件中,或者只是复制和替换原始文件中的数据,例如您有一个包含数据的文件,并且您有一个数组与文件具有相同数据的列表,因此如果更改数组列表中的元素,则再次替换该文件:
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();
}
}