如何将 Map 转换为 Byte 并保存到内部存储

2023-12-20

我怎样才能转换我的Map<Integer, String> to byte[],然后将其写入内部存储器?我目前有:

        try {
            FileOutputStream fos = context.openFileOutput(Const.FILE_CATEGORIES, Context.MODE_PRIVATE);
            fos.write(null);
        } catch (FileNotFoundException e) {
            // reload and create the file again
        }

但是..我不知道如何获得Map转换为正确的格式,然后在需要再次加载时将其解码回原始格式。我需要每周重新创建一次该文件,并在应用程序启动时加载它。


  1. 使用java中的序列化,您可以轻松解析任何可序列化的 对象到字节流。尝试使用 ObjectInputStream 和 对象输出流。

  2. 使用json来恢复。您可以使用 google-gson 来转换 Java 对象到 JSON,反之亦然。

  3. 在android中使用Parcel。 android.os.Parcel 类旨在传递数据 在android(activity,service)中的组件之间,但您仍然可以使用它来进行数据持久化。 请记住不要将数据发送到互联网,因为不同 平台可能有不同的算法来进行解析。

我写了一个序列化的demo,你试试吧。

public static void main(String[] args) throws Exception {
    // Create raw data.
    Map<Integer, String> data = new HashMap<Integer, String>();
    data.put(1, "hello");
    data.put(2, "world");
    System.out.println(data.toString());

    // Convert Map to byte array
    ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
    ObjectOutputStream out = new ObjectOutputStream(byteOut);
    out.writeObject(data);

    // Parse byte array to Map
    ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
    ObjectInputStream in = new ObjectInputStream(byteIn);
    Map<Integer, String> data2 = (Map<Integer, String>) in.readObject();
    System.out.println(data2.toString());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Map 转换为 Byte 并保存到内部存储 的相关文章

  • onclick 监听器(this)是什么意思?

    btn Login setOnClickListener this 在安卓工作室 我在无数地方见过这种情况 这是什么意思 我知道该怎样this运行 但是监听者叫什么 这个例子来自 Link https stackoverflow com q
  • Visual Studio Code:运行 Maven 时无法识别环境变量

    我正在尝试为 Maven 重新创建 Eclipse 运行配置 我在launch json中添加了环境变量 env environment test applicationname asset misc api log level debug
  • 如何通过改造发送 List

    我正在向服务器发送多部分请求 这是我的界面 Multipart POST v1 group new Call
  • 与其他布局相比,约束布局是否昂贵?

    当我意识到 ConstraintLayout 有 更好的布局拖放 通过更好的命名 top toBottomOf 更好地查看相对设置 更好的布局结构与比率和百分比指南 还有更多不能在这里说明或者我只是不知道 我一直想不断地使用它 因为它太舒服
  • 为什么 SequenceFile 被截断?

    我在学习Hadoop这个问题困扰了我一段时间 基本上我正在写一个SequenceFile到磁盘然后读回 然而 每次我收到EOFException阅读时 深入观察发现 在写入序列文件时 它被过早截断 并且总是发生在写入索引962之后 并且文件
  • SimpleCursorAdapter 的替代品?

    我正在查看 Android 开发者网站上的记事本教程 并注意到SimpleCursorAdaptor已弃用 新的构造函数 public SimpleCursorAdapter Context context int layout Curso
  • Android - WebView 中的 AdSense(适用于 BlackBerry Playbook - Android 运行时)

    我想在 Android 的 WebView 中显示 AdSense 广告 我知道我可以只使用 AdMob 广告 但我正在为 Playbook 进行开发 并且 Playbook 刚刚获得了 Android 虚拟运行时 因此大多数 AdMob
  • 发生存储异常。无法在firebase中上传图片

    在我能够更改图像并将其上传到 firebase 之前 这段代码就可以工作 但现在我突然收到此错误 我不知道问题是什么 public class SettingsActivity extends AppCompatActivity priva
  • Spring:自定义验证器未被调用

    我正在查看有关 Spring 自定义验证器的其他问题 但不幸的是我无法用建议的答案解决我的问题 我的问题如下 我有一个实体 帐户 并且创建了一个自定义验证器 AccountValidator 我在控制器 RegisterController
  • 在phonegap中播放本地声音

    我有一个 wav文件在我的www文件夹 我正在使用 jQuery 和以下代码 警报响起 但声音不播放 难道我做错了什么
  • APK META-INF/library_release.kotlin_module 中复制的重复文件

    我最近通过 JitPack 添加了两个 Android 库 但出现以下错误 Duplicate files copied in APK META INF library release kotlin module 我已经清除了缓存 并尝试使
  • 更改操作栏标题文本颜色

    我正在尝试更改 ActionBar 中标题文本的颜色 但我似乎无法让它工作 这是我尝试使用的风格 在我的应用程序主题中我使用titleTextStyle
  • 有哪些好方法可以控制 GridBagConstraints?

    我对 Swing 编程有点陌生 我发现尽管我很喜欢 GridBagLayout 的强大功能 但如果您有很多组件 那么就会有很多代码行只是设置布局的约束 除了使用可视化编辑器之外 还有哪些好方法可以控制这种情况 请记住 当您添加GridBag
  • 如何检测android中的颠倒方向?

    在我的 Android 应用程序中 我有全景图像 并且我使用 TYPE ORIENTATION 传感器根据手机运动旋转该图像 它对于横向和纵向都工作良好 这是旋转逻辑的代码 Override public void onSensorChan
  • 如何使用 (a)smack 在 Android 上保持 XMPP 连接稳定?

    我使用适用于 Android 的 asmack android 7 beem 库 我有一个后台服务正在运行 例如我的应用程序保持活动状态 但 XMPP 连接迟早会在没有任何通知的情况下消失 服务器表示客户端仍然在线 但没有发送或接收数据包
  • Java - 基类和子类中的 equals 方法

    我有一个简单的基类 后来由许多单独的类扩展 这些类可能会引入新的字段 但不一定 我在基类中定义了一个 equals 方法 但也为一些子类重写了该方法 可以在基类 子类中混合定义吗 就我而言 这是为了避免代码重复检查相同的字段 看一眼 实现
  • 通用接口和实现 - 类型无法转换

    我有一个通用接口定义为 public interface ItemService
  • 如何组织 Java 属性条目以实现国际化?

    在我们的应用程序中 我们有一个 messages properties 文件 其中包含将显示给 UI 的所有字符串 我们有一个带有几个屏幕的小应用程序 它已经变得很笨拙 因为整个过程中都有重复的字符串值 现在 我们用页面特定的字符串进行组织
  • 数组到集合:优化代码

    有更好的方法来实现这一目标吗 public static List
  • 有没有一种简单的方法(工具?)来比较不同格式的图像像素?

    好吧 我现在已经用 java 编写了一个基本的无损 jpeg 连接器 但我想将它生成的文件与原始文件进行比较 我只能在十六进制编辑器中比较这么多 有谁知道一种简单的方法 基于软件或基于java 最好是软件 因为我现在不想再编码了 我可以比较

随机推荐