Hierarchical Data Format,可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。大多数普通计算机都支持这种文件格式。 HDF是用于存储和分发科学数据的一种自我描述、多对象文件格式。HDF是由美国国家超级计算应用中心(NCSA)创建的,以满足不同群体的科学家在不同工程项目领域之需要。

关于HDF5的介绍,请查看HDF5的官方页面。和参考此文:科学存储数据格式-HDF5

此外,HDF5提供了JAVA接口,下面是java使用HDF5的一些注意事项和相关代码。

1.Eclipse配置

到hdf5的安装文件夹下面,把jarhdf5.jar, slf4j-api.jar,slf4j-simple.jar 添加到功能lib目录,同时把hdf5_java.dll文件添加到一个目录X。注意,在此过程中,添加且只添加这三个文件,第四个slf4j-nop-1.7.5.jar暂时不使用。

HDF5为C++ native的第三方库,按照引入库的一般步骤加入Eclipse工程。windows->preference->java->userLIbraries->new。自行添加库的名字。我的名字是HDF5。

然后在新建的用户库里面,Add JARS,添加jarhdf5.jar, slf4j-api.jar,slf4j-simple.jar三个文件,并在jarhdf5.jar下面配置Native library location,链接到X目录,用以调用Native动态库hdf5_java.dll。

然后在工程的源码文件中,引入hdf5的包。

例如:

import hdf.hdf5lib.H5;
import hdf.hdf5lib.HDF5Constants;

2.读取HDF5文件

初次使用,使用了C++写入的文件,测试读取,可运行代码如下:

public static void main(String[] args) {String fname = "D:/dataSet/RecoSys/JavaTest/HDF5DatasetRead.h5";// private staticString dsname = e = "training_data";try {// create the HDF5 file and add groups and dataset into the file//save_to_file(fname, dsname, dims2D);} catch (Exception ex) {ex.printStackTrace();}// 测试读出try {load_from_file(fname, dsname);} catch (Exception ex) {ex.printStackTrace();}
}

load函数:

 public static int load_from_file(String fname, String dsname) throws Exception {//读取先后使用了fileID,SpaceID,DatasetIDlong file_id = -1;long space_id = -1;long dataset_id = -1;// Open file using the default properties.try {file_id = H5.H5Fopen(fname, HDF5Constants.H5F_ACC_RDWR, HDF5Constants.H5P_DEFAULT);} catch (Exception e) {e.printStackTrace();}// Open dataset using the default properties.try {if (file_id >= 0)dataset_id = H5.H5Dopen(file_id, dsname, HDF5Constants.H5P_DEFAULT);} catch (Exception e) {e.printStackTrace();}// Allocate array of pointers to two-dimensional arrays (theelements of the dataset.int l = 20;int w =20;long[] dims = {0,0};long[] dims2 = {0,0};//获取space_id = H5.H5Dget_space(dataset_id);H5.H5Sget_simple_extent_dims(space_id,dims,dims2);l= (int)dims[0];w= (int)dims[1];int[][] dataRead = new int[l][w];try {if (dataset_id >= 0)H5.H5Dread(dataset_id, HDF5Constants.H5T_NATIVE_INT, HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL,HDF5Constants.H5P_DEFAULT, dataRead);} catch (Exception e) {e.printStackTrace();}// print out the data valuesSystem.out.println("\n\nOriginal Data Values");for (int i = 0; i < l; i++) {System.out.print("\n" + dataRead[i][0]);for (int j = 1; j < w; j++) {System.out.print(", " + dataRead[i][j]);}}
}

实现把数据读取到dataRead中。

3.保存HDF5文件

..............待完成..................

Android:JAVA使用HDF5存储相关推荐

  1. 【Android 文件管理】分区存储 ( MediaStore 文件操作 )

    文章目录 一.动态权限申请 二.MediaStore 操作文件 三.完整代码示例 1.MainActivity 核心代码 2.build.gradle 构建脚本 3.清单文件 五.相关文档资料 特别注 ...

  2. android实现存储,Android开发实现文件存储功能

    本文实例为大家分享了Android开发实现文件存储的具体代码,供大家参考,具体内容如下 这个程序只有一个Activity, Activity中只有一个Edittext.实现的功能是在Activity销 ...

  3. Android Java包

    下面简短介绍一下Android SDK中重要的包. android.app:实现Android的应用程序模型.主要的类包括Application(表示开始和结束语义),以及众多与Activity相关的 ...

  4. Android/Java面试题,边面试边成长,为了应试而应试

    Android/Java面试题,边面试边成长,为了应试而应试 从今天起,所有面试或遇到过的面试题,都整理到此文章下,提醒自己时刻要学习,同时分享给各位.[部分网上整理] Java基础 1,Java中一 ...

  5. [免费专栏] Android安全之数据存储与数据安全「详解」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  6. Android中的数据存储

    Android中的数据存储 1.SharedPreference存储(共享参数) 1.1.使用SharedPreferences存储和读取数据的步骤 存储数据 保存数据一般分为四个步骤: 使用Acti ...

  7. android java kindle_Kindle和Android开发的比较:Java实现

    在<Kindle和Android开发的比较:硬件>中,我们已经为您介绍了Kindle硬件限制以及Android硬件潜力方面的内容.下面将继续为您介绍. Kindle java实现 为有限资 ...

  8. android java kindle_Kindle和Android开发的比较(2)

    Kindle Java实现 为有限资源设备定义一个Java子集的尝试有着长久而复杂的历史.Java微型版本(Java ME)的有些版本是被嵌入在上百万的手机和嵌入式处理器中.在Kindle中被用作出发 ...

  9. android studio文件内部存储,Android Studio使用内部存储上的文件创建diconary

    即时通讯工具正在Android的Notes应用程序中使用. 问题:我不知道如何保存txt.我的内部存储上的应用程序文件.我已经用外部存储编码了它.这里是我的代码(MainActivity.java)A ...

最新文章

  1. LabVIEW图像分割算法(基础篇—6)
  2. 计算机网络谢希仁第七版课后答案第二章 物理层
  3. 禁掉人脸识别!一群音乐人正在号召,禁止在音乐节上动用人脸识别
  4. 如何基于OSS和MPS,快速搭建音视频文件上传服务?
  5. this.parentNode.nextSibling 对div里的换行敏感
  6. 说给做管理软件的同行:你们得学会职业规划
  7. java中使用okhttpsoap,Android okHttp网络请求之Retrofit+Okhttp+RxJava组合
  8. html收款页面模板,订单收款.html
  9. mysql cluster proxy_GitHub - freedaxin/maya: a mysql cluster proxy powered by node.js
  10. python代码阅读_莫烦Python RL 代码阅读一
  11. pyqt5优秀项目python_基于Pyqt5打造量化系统GUI
  12. 谷歌浏览器开发者工具network_关于Chrome谷歌浏览器开发者工具网络Network中返回无数据的问题...
  13. java知识点ppt背景图片_Java 给PPT幻灯片添加背景颜色和背景图片
  14. MPC-HC视频播放器
  15. 【论文笔记】 Synthesizing Robust Adversarial Examples
  16. isis和ospf比较
  17. SSM校园外卖订餐系统
  18. grafana的前端二次开发初体验
  19. SN74LS148优先编码器的级联使用
  20. DoIP的基本信息(一)

热门文章

  1. HBase最佳实践-读性能优化策略
  2. Exchange Server外网映射规则注意事项
  3. 远程访问windows上的oracle不能正常连接
  4. python中global 和 nonlocal 的作用域
  5. C 中可以这样写函数的参数 !!
  6. 139邮箱的邮件附件功能
  7. 1.IT-解决方案-1-FTP
  8. 4/7 SELECT语句:过滤(组合WHERE子句)
  9. SQL 关于地图两个坐标点之间的距离运算
  10. Drupal 为前台(Front page)页面添加区域(Regions)