-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathH5Ex_T_VLString.java
More file actions
121 lines (105 loc) · 3.64 KB
/
Copy pathH5Ex_T_VLString.java
File metadata and controls
121 lines (105 loc) · 3.64 KB
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();
}
}