Java读取txt文件进行JNI测试

  • 前言
  • 1. 新建assets文件夹
  • 2. 载入测试文件
  • 3. 建立文件读取方法
  • 4. 在MainActivity中读取文件数据

JNI开发笔记(一)–Android Studio安装与环境搭建
JNI开发笔记(二)–创建JNI基础工程并运行
JNI开发笔记(三)–JNI工程的框架分析
JNI开发笔记(四)–实现一个简单的JNI工程并生成so库
JNI开发笔记(五)–JNI语法总结
JNI开发笔记(六)–一种更规范的so库生成方法
JNI开发笔记(七)–aar库的生成和调用

前言

在对JNI工程生成的so库或者aar库进行测试的时候,测试样例往往很大,需要放在txt文件中进行读取。本篇文章主要讲述了如何利用java对txt文件进行读取,以测试JNI工程。

1. 新建assets文件夹

Android工程中默认的存放资源文件的文件夹是assets文件夹,是专门用来存放资源文件的,而且系统在编译的时候不会编译assets下的资源文件。所以我们需要将我们的txt文件放在assets文件夹下。assets文件夹在main文件夹下面,但是Android Studio默认没有添加assets文件夹,所以我们需要在main中new一个新的文件夹:


在下方选择“assets”,双击即可。如果没有候选项,直接手打“assets”也是可以的。

可以看到assets文件夹已经建立完毕了。

2. 载入测试文件

我们新建一个“test.txt” 用来当作测试文件(注意数字之间用逗号间隔):

然后将建立好的文件粘贴到assets文件夹下:

3. 建立文件读取方法

我们新建一个class,叫做“ReadTxt”:

在这个class中我们复制下面一段代码:

package com.jni.aarbulidproject;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;public class ReadTxt {public static float[] readTxtFile(InputStream inputStream, int bufferLen){try {int size = inputStream.available();  // 文件中所有字符的数量String string;int count = 0;int index = 0;byte[] bytes = new byte[size];byte[] temp = new byte[bufferLen];  // 存放单个数据的bufferArrays.fill(temp, (byte) 0);float[] res = new float[size];inputStream.read(bytes);inputStream.close();for(int i = 0; i < size; i++){if(bytes[i] == 44){  //以逗号为数据分割点count = 0;string = new String(temp);res[index++] = Float.parseFloat(string);   // 将buffer中的数据转为float型Arrays.fill(temp, (byte) 0);//Log.d("testlog", Float.toString(res[index-1]));  // 打印每一个数据}else {temp[count++] = bytes[i];}}return res;}catch (IOException e) {e.printStackTrace();}return null;}
}

这段代码的作用就是通过文件流来读取指定长度的数据。注意,数据格式必须为数据+逗号的形式,可以通过 if(bytes[i] == 44) 这句话来更改数据读取格式。

4. 在MainActivity中读取文件数据

然后我们在MainActivity中加入下面这段代码读取文件中的数据:

        /** 读取assets文件夹中的txt文件,并将数据放在数组中*/InputStream inputStream = null;try {inputStream = getAssets().open("test.txt");} catch (IOException e) {e.printStackTrace();}int bufferLen = 10; // 存放数据buffer的长度(应该大于等于数据的最大长度)float[] res;res = ReadTxt.readTxtFile(inputStream, bufferLen );for(int i = 0; i < 10; i++){Log.d("TestResult:",String.valueOf(res[i]));}

然后我们通过log日志可以看到文件中的数据被成功读取并打印出来:

JNI开发笔记(八)--Java读取txt文件进行JNI测试相关推荐

  1. [java进阶]1.Java读取txt文件和写入txt文件

    1. Java读取txt文件 import java.io.*; import java.util.ArrayList; import java.util.List;public class unit ...

  2. java读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  3. java读取txt文件乱码解决方案

    因为txt默认的选项是ANSI,即GBK编码.GBK和GB2312都是中文编码,在这里解释一下两者的区别. 总体说来,GBK包括所有的汉字,包括简体和繁体.而gb2312则只包括简体汉字. GBK: ...

  4. Java读取txt文件,并且对其文件内容进行统计排序

    1.业务需求 : 根据使用量将下列数据进行排序 然后按照使用量的高低进行 数据展示 2.实现代码 import java.io.BufferedReader; import java.io.File; ...

  5. Java 读取TXT文件的多种方式-行读取,字节读取

    Java 读取TXT文件的多种方式 1).按行读取TXT文件 package zc; import java.io.BufferedReader; import java.io.File; impor ...

  6. java 读取txt文件和xls文件

    ①:java读取txt文件 首先声明一下,我此处所涉及的文件读取只是简单的读取以及自己的一些见解.如有错误,还请提点 package test;import java.io.BufferedReade ...

  7. Java读取txt文件、excel文件的方法

    Java读取txt文件.excel文件的方法 1.读取txt文件 public static String getFileContent(String filePath,String charset) ...

  8. java读取txt文件函数_Java读取txt文件和写入txt文件的简单实例

    写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂! package edu.thu.keyword.test ...

  9. java读取txt文件中的内容

    java读取txt文档中的内容:在这个地方我们输入一个txt文件的路径,就可以读取出txt文档中的内容: public static String readStringFromtxt(String t ...

最新文章

  1. Android 自定义View —— Paint
  2. linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改
  3. 系统调用日志收集系统
  4. ios中常用数据类型相互转换
  5. html中响应式查询,css 响应式(媒介查询)
  6. 凝血酶分子机器人_了不得!这个机器人可以拟制癌细胞生长
  7. 钉钉小程序数据传递——子传父,父传子
  8. URAL 1013 K-based Numbers. Version 3
  9. 利用微信的weui框架上传、预览和删除图片
  10. squid服务配置(正向、反向代理)
  11. java两个数组中不同的数字_java将两个数组中不同的数字去掉一个剩下的保存到一个新的数组中...
  12. php读取oracle,php读取oracle中数据库文件
  13. Mac版正式上线剪映,适配用M1
  14. AutoCAD.net(一):更改AutoCAD窗口的标题和图标
  15. Elasticsearch系列——实战探索text与keyword的区别
  16. android驱动程序失败,android studio 3.0中的haxm错误需要数字签名的驱动程序
  17. http://www.eoeandroid.com/thread-153979-1-1.html
  18. python有道批量单词音标整理-使用有道API在线批量翻译单词
  19. Postgresql源码(41)plpgsql函数编译执行流程分析
  20. 2014-04-12腾讯实习生笔试题目及解析

热门文章

  1. CentOS 7上安装 MongoDB数据库 4.0.0最新版
  2. 信安教程第二版-第20章数据库系统安全
  3. 知识图谱运用于推荐系统
  4. 大项目之网上书城(十二)——完成啦
  5. Linux 基础 (1) - 在Win10上使用Hyper-v虚拟机安装CentOS7
  6. navicat修改表的主键自增长报错
  7. Spark机器学习(3):保序回归算法
  8. 开发中常用到的通用 scss 模块
  9. nil和NSNull
  10. 推荐:CLR 完全介绍-一篇讲解CLR内存回收机制以及常见的调试技巧的文章