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

标签 java android 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();
}

最佳答案

您正在尝试在文件上序列化您的 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 的文档:

Writes an object to the target stream.

关于java - 如何在 Android 中将 Hashset 保存到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22017285/

相关文章:

java - Maven:在属性中设置代码变量

java - url-pattern/* 将 jsp 文件和静态资源作为单独的请求提供

android - Android QMediaPlayer 可以播放哪些视频文件?

android - 如何在我的 Android NDK 项目中包含字体文件 (.ttf)?

c# - 为什么使用 List 而不是 HashSet?

Java - 只执行一次方法

java - 如何通过 Google 帐户在 Android 中使用 AccountManager?

java - 如何使用 HashSet 查找两个 Comparable 数组中的共同元素?

java - 在哈希集中添加重复的 int[]?

Java 等效于 C# Array.GetLength(i)