python生成dat文件_Java .dat文件到Python泡菜 - java

我有一些缓存文件,它们将它们存储在Java中的.dat文件中。这些是HashMap数据结构:

ObjectOutputStream oos = new ObjectOutputStream(new

FileOutputStream(cachePath));

oos.writeObject(common_value_Cache);

oos.close();

现在使用我的python程序,我想打开这些文件并以相同的字典数据结构读取它们:

withopen('/cache.dat', 'rb') as handle:

b = pickle.load(handle)

反正我能做到吗?

我遇到很多错误,例如:ValueError:二进制模式不采用编码参数

如何在python中加载.dat文件?

参考方案

您可以尝试javaobj-py3

生成HashMap结构编码的cache.json文件的Java代码

import java.io.IOException;

import java.io.ObjectOutputStream;

import java.io.FileOutputStream;

import java.util.HashMap;

public class savehashmap{

public static void main(String[] args)throws IOException{

HashMap obj=new HashMap();

obj.put("foo","bar");

obj.put("lorem","ipsum");

obj.put("hello","world");

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("cache.dat"));

oos.writeObject(obj);

oos.close();

}

}

然后,在执行上面的代码并使用pip3安装软件包之后,安装javaobj-py3

>>> import javaobj

>>> with open("cache.dat","rb") as f:

... b=javaobj.loads(f.read())

...

>>> print(b)

{'hello': 'world', 'lorem': 'ipsum', 'foo': 'bar'}

Java:我可以在Hashmaps中使用数组吗? - java

我可以在Hashmaps中使用数组吗?如果是这样,则声明这种哈希图的确切语法是什么?谢谢 参考方案 数组也是对象。甚至像int[]这样的原始数组。Map map = new HashMap();Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…与哪些运算符>>兼容 - java

我这里没有什么代码int b=3; b=b >> 1; System.out.println(b); 它可以完美工作,但是当我将变量b更改为byte,short,float,double时,它包含错误,但是对于变量int和long来说,它可以完美工作,为什么它不能与其他变量一起工作? 参考方案 位移位运算符(例如>>)与任何整数类型兼…Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值