levelDB使用教程(个人理解)

准备操作

 1.首先levelDB使用k-v形式存储,但是k-v都是byte[]形式存储,在区块链中主要是存储区块头文件,所以要将hash值和数据转换为byte[]数组形式。
 2.java的序列化与反序列化
 3.其次是levelDB的配置
pom.xml
<dependency>
    <groupId>org.iq80.leveldb</groupId>
    <artifactId>leveldb</artifactId>
    <version>0.7</version>
</dependency>
<dependency>
    <groupId>org.iq80.leveldb</groupId>
    <artifactId>leveldb-api</artifactId>
    <version>0.7</version>
</dependency>

java的序列化与反序列化:
1.强制转化(byte)
2.String string = “hello world”;
string转化为byte[]数组
byte[] bytes = string.getBytes();
byte[]转为string
String s = new String(bytes);
3.实现Serializable接口:
1.首先声明class XXX implements Serializable{}
2.声明一个工具类 public class SerializeUtil
{
//传输保存的文件位置
private static String file_name = “d://obj.bin”;

        //序列化方法
        public void writeObj(Serializable s){  ObjectOutputStream oos = new ObjectOutputStream(new   FileOutputStream(file_name));
        oos.writeObject(s);
        System.out.println("序列化成功");
        oos.close();

}
//反序列化方法
public object readobject(){
ObjectInputStream input = new ObjectInputStream(new FileInputStream(file_name));
obj = input.readObejct();
input.close();

return object;}

    }
    3.实现工具类对象,显示把xxx作为参数传入序列化方法中,随后反序列化方法(有时候需要进行类型转化,不过传来为object型,转换挺方便的)

———-levelDB操作:
准备好数据之后,先声明三个对象:(三个类都为导入的类,不用自己编写)
DBFactory factory = new Iq80DBFactory();
Options options = new Options().createIfMissing(true);
DB db = factory.open(new File(path), options);
db.put(byte[],byte[]);//写操作
声明个操作对象
DBIterator iterator=db.iterator();
while(iterator.hasNext()) {
Map.Entry

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值