准备操作

 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

levelDB使用教程(个人理解)相关推荐

  1. CANOpen系列教程02_理解CAN总线协议

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!https://www.cnblogs.com/captainbed 正文: CANOpen ...

  2. python爬虫入门教程--快速理解HTTP协议(一)

    http协议是互联网里面最重要,最基础的协议之一,我们的爬虫需要经常和http协议打交道.下面这篇文章主要给大家介绍了关于python爬虫入门之快速理解HTTP协议的相关资料,文中介绍的非常详细,需要 ...

  3. Windows 8实例教程系列 - 理解应用框架

    Windows 操作系统之所以风靡世界,是因为其"易学易用",从用户的角度出发,让数以万计的非IT人员使用计算机实现娱乐,工作等目的.Windows 8继承Windows桌面的优点 ...

  4. python在线搭建教程_理解python web开发,轻松搭建web app!

    大家好,今天分享给大家的是理解python web开发,轻松搭建web app,希望大家学有所获! 因为 python代码的优雅美观且易于维护这一特点,越来越多的人选择使用 Python做web开发. ...

  5. Docker小白入门教程--docker理解与实战(懵逼三连--Docker是什么,为什么要使用Docker,如何使用Docker?)

    站在巨佬的肩膀上,才能看的更远!(没错这篇文章就是大量援引国内外网上各位大佬的博客,外加我这个小菜初入docker的一些理解,整理一下所学,也是为了方便我自己在暑假过完后,被别人问起docker问到我 ...

  6. spring boot 项目源码_Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent

    前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent><groupId& ...

  7. java读取classpath配置文件_SpringBoot2.x入门教程:理解配置文件

    前提 这篇文章是<SpringBoot2.x入门>专辑的「第4篇」文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 主要介绍SpringBoot配置文 ...

  8. ASP.NET MVC教程:理解模型、视图和控制器(1)

    本文对ASP.NET MVC的模型.视图和控制器做一次高级概述,换句话说,就是解释ASP.NET MVC中的"M""V""C".阅读完本文后 ...

  9. python3菜鸟教程-总算理解python3中文入门教程

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

最新文章

  1. php输出mysql错误日志_PHP_PHP中把错误日志保存在系统日志中(Windows系统),【将错误记录到系统日志中】 - phpStudy...
  2. Lazarus IOCP 移植
  3. AOJ 491.扑克牌
  4. Anaconda详细安装及安装Scrapy框架
  5. ad如何设置pcb板子形状_手把手教你在PCB上添加泪滴
  6. 可以叫板Google的一个搜索引擎 —— DuckDuckGo
  7. SQL Server数据库log shipping 灾备(Part2 )
  8. Animation in Windows 8 apps
  9. arcserver开发小结(三)
  10. YII2 使用curl请求,返回false
  11. slopShell:强大的PHP Webshell
  12. 计算器软件测试方法和技术,人工如何测试计算器
  13. html 好看的英文字体,力荐!8款超有设计感的英文字体。
  14. 电路交换,报文交换和分组交换的区别?
  15. ffmpeg滤镜专题2-高斯模糊
  16. 日本python程序员工资_年轻程序员赴日本工作有前途吗?
  17. md5在线转换计算机,已解付费MD5在线解密查询
  18. android qq音乐歌词怎么实现,歌词翻译利器 QQ音乐Android3.9.5版本全新上线
  19. python有哪些细节描写_细节描写训练,莫失良机
  20. like not like

热门文章

  1. 2021年中国榴莲行业市场发展分析:市场需求巨大,高度依赖进口,进口价格不断上涨[图]
  2. 计算机化系统验证管理 360,计算机化系统验证合集
  3. 开关电源纹波产生分析
  4. 实习生Python炫技却被主管教育?原来是这样!
  5. python pc端微信记录读取_微信 PC 版迎来了重磅更新,可以在电脑端使用小程序了 |内附下载链接...
  6. 今日报错系列:未定义的SYSTEMTIME
  7. Apache Flink在滴滴的应用与实践
  8. how2heap总结
  9. utc时间 单位换算_c++ 时间类型详解 time_t
  10. flutter报错Navigator operation requested with a context that does not include a Navigator