JNI开发笔记(八)--Java读取txt文件进行JNI测试
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测试相关推荐
- [java进阶]1.Java读取txt文件和写入txt文件
1. Java读取txt文件 import java.io.*; import java.util.ArrayList; import java.util.List;public class unit ...
- java读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- java读取txt文件乱码解决方案
因为txt默认的选项是ANSI,即GBK编码.GBK和GB2312都是中文编码,在这里解释一下两者的区别. 总体说来,GBK包括所有的汉字,包括简体和繁体.而gb2312则只包括简体汉字. GBK: ...
- Java读取txt文件,并且对其文件内容进行统计排序
1.业务需求 : 根据使用量将下列数据进行排序 然后按照使用量的高低进行 数据展示 2.实现代码 import java.io.BufferedReader; import java.io.File; ...
- Java 读取TXT文件的多种方式-行读取,字节读取
Java 读取TXT文件的多种方式 1).按行读取TXT文件 package zc; import java.io.BufferedReader; import java.io.File; impor ...
- java 读取txt文件和xls文件
①:java读取txt文件 首先声明一下,我此处所涉及的文件读取只是简单的读取以及自己的一些见解.如有错误,还请提点 package test;import java.io.BufferedReade ...
- Java读取txt文件、excel文件的方法
Java读取txt文件.excel文件的方法 1.读取txt文件 public static String getFileContent(String filePath,String charset) ...
- java读取txt文件函数_Java读取txt文件和写入txt文件的简单实例
写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂! package edu.thu.keyword.test ...
- java读取txt文件中的内容
java读取txt文档中的内容:在这个地方我们输入一个txt文件的路径,就可以读取出txt文档中的内容: public static String readStringFromtxt(String t ...
最新文章
- Android 自定义View —— Paint
- linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改
- 系统调用日志收集系统
- ios中常用数据类型相互转换
- html中响应式查询,css 响应式(媒介查询)
- 凝血酶分子机器人_了不得!这个机器人可以拟制癌细胞生长
- 钉钉小程序数据传递——子传父,父传子
- URAL 1013 K-based Numbers. Version 3
- 利用微信的weui框架上传、预览和删除图片
- squid服务配置(正向、反向代理)
- java两个数组中不同的数字_java将两个数组中不同的数字去掉一个剩下的保存到一个新的数组中...
- php读取oracle,php读取oracle中数据库文件
- Mac版正式上线剪映,适配用M1
- AutoCAD.net(一):更改AutoCAD窗口的标题和图标
- Elasticsearch系列——实战探索text与keyword的区别
- android驱动程序失败,android studio 3.0中的haxm错误需要数字签名的驱动程序
- http://www.eoeandroid.com/thread-153979-1-1.html
- python有道批量单词音标整理-使用有道API在线批量翻译单词
- Postgresql源码(41)plpgsql函数编译执行流程分析
- 2014-04-12腾讯实习生笔试题目及解析