在组中创建不透明数据集

时间:2012-03-13 09:23:01

标签: java hdf5

我无法理解为什么我的代码会给我HDF5库异常。它指向createScalarDS方法作为错误的来源。但我相信这种方法确实存在。谁能告诉我为什么这段代码无法创建不透明的数据集?修改应该是什么?感谢。

public static void createFile(Message message) throws Exception {
    // retrieve an instance of H5File
    FileFormat fileFormat = FileFormat
            .getFileFormat(FileFormat.FILE_TYPE_HDF5);
    if (fileFormat == null) {
        System.err.println("Cannot find HDF5 FileFormat.");
        return;
    }

    // create a new file with a given file name.
    H5File testFile = (H5File) fileFormat.create(fname);
    if (testFile == null) {
        System.err.println("Failed to create file:" + fname);
        return;
    }

    // open the file and retrieve the root group
    testFile.open();
    Group root = (Group) ((javax.swing.tree.DefaultMutableTreeNode) testFile
            .getRootNode()).getUserObject();
    Group g1 = testFile.createGroup("byte arrays", root);

    // obtaining the serialized object
    byte[] b = serializer.serialize(message);
    int len = b.length;
    byte[] dset_data = new byte[len + 1];

    // Initialize data.
    int indx = 0;
    for (int jndx = 0; jndx < len; jndx++)
        dset_data[jndx] = b[jndx];
    dset_data[len] = (byte) (indx);

    // create opaque dataset ---- error here…
    Datatype dtype = testFile.createDatatype(Datatype.CLASS_OPAQUE,
            (len * 4), Datatype.NATIVE, Datatype.NATIVE);
    Dataset dataset = testFile.createScalarDS("byte array", g1, dtype,
            dims1D, null, null, 0, dset_data);// error shown in this line

    // close file resource
    testFile.close();
}

0 个答案:

没有答案