如何在 Java 中使用 BufferedOutputStream 序列化 HashMap?
How to serialize a HashMap with BufferedOutputStream in Java?
我有一个非常大的 HashMap<String, List<String>>
格式的 HashMap,我想使用 BufferedOutputStream
对其进行序列化,因为我认为它比使用常规 OutputStream
更有效.
但是如何将 HashMap 分成缓冲区大小的块?我应该只遍历 HashMap 吗?
如果您打算写入本地文件,则需要链接 FileOutputStream
、BufferedOutputStream
和 ObjectOutputStream
。使用以下设置 BufferedOutputStream
应使用 8192 字节的默认缓冲区最小化对文件系统的直接写入。
Map<String, List<String>> data = new HashMap<>();
data.put("myKey", List.of("A", "B", "C"));
File outFile = new File("out.bin");
try (FileOutputStream fos = new FileOutputStream(outFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
ObjectOutputStream oos = new ObjectOutputStream(bos)) {
oos.writeObject(data);
oos.flush();
}
除非输出文件太大,否则不需要进一步分块。
我有一个非常大的 HashMap<String, List<String>>
格式的 HashMap,我想使用 BufferedOutputStream
对其进行序列化,因为我认为它比使用常规 OutputStream
更有效.
但是如何将 HashMap 分成缓冲区大小的块?我应该只遍历 HashMap 吗?
如果您打算写入本地文件,则需要链接 FileOutputStream
、BufferedOutputStream
和 ObjectOutputStream
。使用以下设置 BufferedOutputStream
应使用 8192 字节的默认缓冲区最小化对文件系统的直接写入。
Map<String, List<String>> data = new HashMap<>();
data.put("myKey", List.of("A", "B", "C"));
File outFile = new File("out.bin");
try (FileOutputStream fos = new FileOutputStream(outFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
ObjectOutputStream oos = new ObjectOutputStream(bos)) {
oos.writeObject(data);
oos.flush();
}
除非输出文件太大,否则不需要进一步分块。