簡體   English   中英

無法從CBOR文件讀取數據

[英]Unable to read data from CBOR File

我的目標是使用文件將TargetModel類的實例存儲為CBOR格式。 如果有其他方法,它對我有用!

我正在使用Jackson CBOR API讀寫文件中的數據,並將數據寫入文件。

我正在使用ObjectMapper類的writeValue方法編寫TargetModel的實例,但是當我嘗試讀取數據時,當我嘗試使用ReadValue讀取對象時,它將引發JsonMappingException

請幫我! 因此,我遇到了嚴重的麻煩。

主類

package cborStoring;

public class MainClass {

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

    String targetfilePath = "/home/vaio/Documents/mySampleFile";

    CBORWriter myCborWriter = new CBORWriter();

    TargetModel sampleModel = new TargetModel("rajat", "dfdsf");
//  TestClass sampleModel = new TestClass();

    Object inputObject = (Object)sampleModel;


    myCborWriter.writeObject(inputObject, targetfilePath);

    CBORReader myCborReader = new CBORReader();
    Object readObj = myCborReader.readObject(targetfilePath);

    TargetModel myModel = (TargetModel)readObj;
//  TestClass myModel = (TestClass)readObj;

    System.out.println("Program Ends!");

}
}

CBORWriter.java

package cborStoring;

public class CBORWriter {

public CBORWriter(){

}

public void writeObject(Object inputObject, String targetfilePath) throws Exception{

    FileOutputStream fos = new FileOutputStream(targetfilePath, true);

    if (!(new File(targetfilePath)).exists())
        (new File(targetfilePath)).createNewFile();

    CBORFactory f = new CBORFactory();
    ObjectMapper mapper = new ObjectMapper(f);

    mapper.writeValue(fos,inputObject);


    fos.close();
}

}

CBORReader.java

package cborStoring;

public class CBORReader {

public CBORReader(){

}

public Object readObject(String targetFilePath) throws Exception{

    FileInputStream fis = new FileInputStream(targetFilePath);

    CBORFactory f = new CBORFactory();

    ObjectMapper myMapper = new ObjectMapper(f);

    CBORParser myCborParser = f.createParser(fis);

    //Object readObject = myMapper.readValue(myCborParser, Object.class);
    //Object readObject = myMapper.readValue(myCborParser, TargetModel.class); : This does NOT Work throws JSONMappingException

    Object readObject = myMapper.readValue(myCborParser, TargetModel.class);

    return readObject;

}

}

我不知道潛在的問題是什么,但是可以將代碼簡化很多,如下所示:

ObjectMapper映射器= new ObjectMapper(new CBORFactory()); mapper.writeValue(file,objectToWrite); TargetModel結果= mapper.readValue(文件,TargetModel.class);

分別構造解析器或生成器通常沒有多大意義。 另外,請確保使用最新的可用版本。 2.5.3此時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM