1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
package examples.datatypes;
import ncsa.hdf.hdf5lib.H5;
import ncsa.hdf.hdf5lib.HDF5Constants;
public class H5Ex_T_VLString
{
private static String FILENAME = "H5Ex_T_VLString.h5";
private static String DATASETNAME = "DS1";
private static void createDataset() {
int file_id = -1;
int type_id = -1;
int dataspace_id = -1;
int dataset_id = -1;
int rank = 1;
String[] str_data = { "Parting", "is such", "sweet", "sorrow." };
long[] dims = { str_data.length };
// Create a new file using default properties.
try {
file_id = H5.H5Fcreate(FILENAME, HDF5Constants.H5F_ACC_TRUNC,
HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT);
}
catch (Exception e) {
e.printStackTrace();
}
try {
type_id = H5.H5Tcopy(HDF5Constants.H5T_C_S1);
H5.H5Tset_size(type_id, HDF5Constants.H5T_VARIABLE);
}
catch (Exception e) {
e.printStackTrace();
}
// Create dataspace. Setting maximum size to NULL sets the maximum
// size to be the current size.
try {
dataspace_id = H5.H5Screate_simple(rank, dims, null);
}
catch (Exception e) {
e.printStackTrace();
}
// Create the dataset and write the string data to it.
try {
if ((file_id >= 0) && (type_id >= 0) && (dataspace_id >= 0)) {
dataset_id = H5.H5Dcreate(file_id, DATASETNAME, type_id, dataspace_id,
HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT);
}
}
catch (Exception e) {
e.printStackTrace();
}
// Write the data to the dataset.
try {
if (dataset_id >=0)
H5.H5DwriteString(dataset_id, type_id,
HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL, HDF5Constants.H5P_DEFAULT,
str_data);
}
catch (Exception e) {
e.printStackTrace();
}
try {
H5.H5Sclose(dataspace_id);
H5.H5Tclose(type_id);
H5.H5Dclose(dataset_id);
H5.H5Fclose(file_id);
}
catch (Exception e) {
e.printStackTrace();
}
}
private static void readDataset() {
int file_id = -1;
int type_id = -1;
int dataset_id = -1;
String[] str_data = { "", "", "", "" };
try {
file_id = H5.H5Fopen(FILENAME, HDF5Constants.H5F_ACC_RDONLY, HDF5Constants.H5P_DEFAULT);;
}
catch (Exception e) {
e.printStackTrace();
}
try {
dataset_id = H5.H5Dopen(file_id, DATASETNAME, HDF5Constants.H5P_DEFAULT);
type_id = H5.H5Dget_type(dataset_id);
H5.H5DreadVL(dataset_id, type_id,
HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL, HDF5Constants.H5P_DEFAULT,
str_data);
}
catch (Exception e) {
e.printStackTrace();
}
for (int indx = 0; indx < str_data.length; indx++)
System.out.println(DATASETNAME + " [" + indx + "]: " + str_data[indx]);
try {
H5.H5Tclose(type_id);
H5.H5Dclose(dataset_id);
H5.H5Fclose(file_id);
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
H5Ex_T_VLString.createDataset();
H5Ex_T_VLString.readDataset();
}
}
|