我正在尝试使用以下代码将Hashset(整数)导出到文件,但似乎我无法使用outputStream.write()
来执行此操作。这里似乎没有任何先前的问题,或谷歌覆盖它,这让我感到惊讶。
Hashset在Activity中定义为:
HashSet<Integer> set = new HashSet<Integer>();
和方法是:
public void savehashset(){
String filename="storedhashset.set";
File storedhashset = new File(getFilesDir(), filename);
FileOutputStream outputStream;
try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(set);
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
答案 0 :(得分:3)
您正在尝试序列化文件上的HashSet
。为此,您可以使用ObjectOutputStream
try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(outputStream);
oos.writeObject(set);
oos.close();
} catch (Exception e) {
e.printStackTrace();
}
来自writeObject的文件:
将对象写入目标流。
答案 1 :(得分:0)
由于HashSet实现了Serializable,你可以试试这个:
ObjectOutputStream output = new ObjectOutputStream(
new FileOutputStream("object.data"));
HashSet<Integer> object = new HashSet<Integer>();
output.writeObject(object);
//etc.
output.close();