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