如何在Android中将Hashset保存到文件?

时间:2014-02-25 14:34:15

标签: java android hashset

我正在尝试使用以下代码将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();
}

2 个答案:

答案 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();