package hdf5;
import java.io.PrintStream;
import java.util.Arrays;
import java.util.Random;
import ch.systemsx.cisd.hdf5.HDF5Factory;
import
ch.systemsx.cisd.hdf5.IHDF5SimpleReader;
import
ch.systemsx.cisd.hdf5.IHDF5SimpleWriter;
public class Hdf5Test {
static
final String hdf5FileName = "myfile.h5";
static
final String tag = "mydata";
public
static void main(final String[] args) {
//
write thread
new
Thread(new Runnable() {
@Override
public
void run() {
final
IHDF5SimpleWriter writer =
HDF5Factory.open(hdf5FileName);
final
Random r = new Random();
for
(int i = 0; i < 10; i++) {
pause(500);
final
float[] data = "" float[1000];
for
(int n = 0; n < data.length; n++) {
data[n]
= r.nextFloat() * 10000f;
}
writer.writeFloatArray(tag
+ i, data);
printData(data,
5, System.out);
}
writer.close();
}
}).start();
pause(1000);
//
read thread
new
Thread(new Runnable() {
@Override
public
void run() {
final
IHDF5SimpleReader reader =
HDF5Factory.open(hdf5FileName);
for
(int i = 0; i < 10; i++) {
pause(600);
float[]
mydata = new float[1000];
mydata
= reader.readFloatArray(tag + i);
printData(mydata,
5, System.err);
}
reader.close();
}
}).start();
}
private
static void pause(final int millisecond) {
try
{
Thread.sleep(millisecond);
}
catch (final InterruptedException e) {
e.printStackTrace();
}
}
private
static void printData(final float[] data, final
int size, final PrintStream out) {
if
((data == null) || (data.length < size)) {
return;
}
final
float[] temp = new float[size];
System.arraycopy(data,
0, temp, 0, size);
out.println(Arrays.toString(temp));
}
}