mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-11 16:01:00 +08:00
Purpose: [is this a bug fix? feature? ...] Description: [describe the bug, or describe the new feature, etc] Solution: [details about the changes, algorithm, etc...] [Please as detail as you can since your own explanation is better than others guessing it from the code.] Platforms tested: [machines you have tested the changed version. This is absolute important. Test it out on at least two or three different platforms such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and 64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
214 lines
5.4 KiB
Java
214 lines
5.4 KiB
Java
/******************************************************************
|
|
* DatasetRdWt.java (for HDF5 tutorial lesson 6)
|
|
*
|
|
* -- Reading and Writing an existing Dataset
|
|
* (a java conversion from h5_rdwt.c)
|
|
*
|
|
******************************************************************/
|
|
|
|
import ncsa.hdf.hdf5lib.*;
|
|
import ncsa.hdf.hdf5lib.exceptions.*;
|
|
|
|
public class DatasetRdWt
|
|
{
|
|
public static void main(String []argv)
|
|
{
|
|
final String FILE = "dset.h5";
|
|
int file_id = -1; // file identifier
|
|
int dataset_id = -1; // dataset identifier
|
|
int status = -1;
|
|
int[][] dset_data = new int[4][6];
|
|
|
|
// Initialize the dataset.
|
|
for (int i = 0; i < 4; i++)
|
|
for (int j = 0; j < 6; j++)
|
|
dset_data[i][j] = i * 6 + j + 1;
|
|
|
|
// Open an existing file
|
|
file_id = H5Fopen_wrap (FILE, HDF5Constants.H5F_ACC_RDWR,
|
|
HDF5Constants.H5P_DEFAULT);
|
|
|
|
// Open an existing dataset.
|
|
dataset_id = H5Dopen_wrap (file_id, "/dset");
|
|
|
|
// Write the dataset.
|
|
status = H5Dwrite_wrap
|
|
(dataset_id, H5.J2C (HDF5CDataTypes.JH5T_NATIVE_INT),
|
|
HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL,
|
|
HDF5Constants.H5P_DEFAULT, dset_data);
|
|
|
|
status = H5Dread_wrap
|
|
(dataset_id, H5.J2C (HDF5CDataTypes.JH5T_NATIVE_INT),
|
|
HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL,
|
|
HDF5Constants.H5P_DEFAULT, dset_data);
|
|
|
|
// Close the dataset.
|
|
status = H5Dclose_wrap (dataset_id);
|
|
|
|
// Close the file.
|
|
status = H5Fclose_wrap (file_id);
|
|
}
|
|
|
|
|
|
// Help function for opening an existing file
|
|
public static int H5Fopen_wrap (String name, int flags, int access_id)
|
|
{
|
|
int file_id = -1; // file identifier
|
|
try
|
|
{
|
|
// Create a new file using default file properties.
|
|
file_id = H5.H5Fopen (name, flags, access_id);
|
|
}
|
|
catch (HDF5Exception hdf5e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Fopen_wrap() with HDF5Exception: "
|
|
+ hdf5e.getMessage());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Fopen_wrap() with other Exception: "
|
|
+ e.getMessage());
|
|
}
|
|
return file_id;
|
|
}
|
|
|
|
|
|
// Help function for opening an existing dataset
|
|
public static int H5Dopen_wrap (int loc_id, String name)
|
|
{
|
|
int dataset_id = -1; // dataset identifier
|
|
|
|
try
|
|
{
|
|
// Opening an existing dataset
|
|
dataset_id = H5.H5Dopen (loc_id, name);
|
|
}
|
|
catch (HDF5Exception hdf5e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Dopen_wrap() with HDF5Exception: "
|
|
+ hdf5e.getMessage());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Dopen_wrap() with other Exception: "
|
|
+ e.getMessage());
|
|
}
|
|
return dataset_id;
|
|
}
|
|
|
|
|
|
// Help function for writing the dataset
|
|
public static int H5Dwrite_wrap (int dataset_id, int mem_type_id,
|
|
int mem_space_id, int file_space_id,
|
|
int xfer_plist_id, Object buf)
|
|
{
|
|
int status = -1;
|
|
|
|
try
|
|
{
|
|
// Write the dataset.
|
|
status = H5.H5Dwrite (dataset_id, mem_type_id, mem_space_id,
|
|
file_space_id, xfer_plist_id, buf);
|
|
}
|
|
catch (HDF5Exception hdf5e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Dwrite_wrap() with HDF5Exception: "
|
|
+ hdf5e.getMessage());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Dwrite_wrap() with other exception: "
|
|
+ e.getMessage());
|
|
}
|
|
return status;
|
|
}
|
|
|
|
|
|
// Help function for reading the dataset
|
|
public static int H5Dread_wrap (int dataset_id, int mem_type_id,
|
|
int mem_space_id, int file_space_id,
|
|
int xfer_plist_id, Object obj)
|
|
{
|
|
int status = -1;
|
|
|
|
try
|
|
{
|
|
// Read the dataset.
|
|
status = H5.H5Dread (dataset_id, mem_type_id, mem_space_id,
|
|
file_space_id, xfer_plist_id, obj);
|
|
}
|
|
catch (HDF5Exception hdf5e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Dread_wrap() with HDF5Exception: "
|
|
+ hdf5e.getMessage());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Dread_wrap() with other exception: "
|
|
+ e.getMessage());
|
|
}
|
|
return status;
|
|
}
|
|
|
|
|
|
// Help function for ending access to the dataset and releasing
|
|
// resources used by it.
|
|
public static int H5Dclose_wrap (int dataset_id)
|
|
{
|
|
int status = -1;
|
|
|
|
try
|
|
{
|
|
// End access to the dataset and release resources used by it.
|
|
status = H5.H5Dclose (dataset_id);
|
|
}
|
|
catch (HDF5Exception hdf5e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Dclose_wrap() with HDF5Exception: "
|
|
+ hdf5e.getMessage());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Dclose_wrap() with other exception: "
|
|
+ e.getMessage());
|
|
}
|
|
return status;
|
|
}
|
|
|
|
|
|
// Help function for terminating access to the file.
|
|
public static int H5Fclose_wrap (int file_id)
|
|
{
|
|
int status = -1;
|
|
|
|
try
|
|
{
|
|
// Terminate access to the file.
|
|
status = H5.H5Fclose (file_id);
|
|
}
|
|
catch (HDF5Exception hdf5e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Fclose_wrap() with HDF5Exception: "
|
|
+ hdf5e.getMessage());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
System.out.println
|
|
("DatasetRdWt.H5Fclose_wrap() with other exception: "
|
|
+ e.getMessage());
|
|
}
|
|
return status;
|
|
}
|
|
}
|