在项目开发的过程中,会遇到很多需要读取本地文件的内容的需求,如读取所有的银行,和读取所有的城市名等等!
如下示意图:

**第一步;**在main文件下,新建assets文件,并将资源文件bankresource.txt文件导入,如下

{"ICBC":"中国工商银行","ABC":"中国农业银行","CCB":"中国建设银行","CMB":"招商银行","CEB":"中国光大银行","CIB":"兴业银行","SPDB":"上海浦东发展银行","COMM":"交通银行","CITIC":"中信银行","HXBANK":"华夏银行","BOC":"中国银行","CMBC":"中国民生银行","PSBC":"中国邮政储蓄银行","GCB":"广州银行","SRCB":"深圳农村商业银行","SPABANK":"平安银行"}

第二步:自定义getFromAssets方法,将对象装换成字符串

//已流的方式读取public String getFromAssets(String fileName) {StringBuilder stringBuilder = new StringBuilder();try {InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open(fileName));BufferedReader bufReader = new BufferedReader(inputReader);String line = "";while ((line = bufReader.readLine()) != null) {stringBuilder.append(line);}return stringBuilder.toString();} catch (Exception e) {e.printStackTrace();}return null;}

第三步:将读取出来的String中分离出来key和value

//读取assets里面文件的数据String content = getFromAssets(FILE_NAME);if (TextUtils.isEmpty(content)) {return;}//对象集合mBankInfoList = new ArrayList<BankInfo>();try {JSONObject object = new JSONObject(content);Iterator<?> iterator = object.keys();//循环迭代器中的key值while (iterator.hasNext()) {//code为解析出来的key值,如ICBCString code = iterator.next().toString();if (code != null) {//name为根据code解析出来的value值,如中国工商银行String name = object.getString(code);Log.e("打印出来", code + "================");Log.e("打印出来", name + "------------------");//BankInfo为Bean对象mBankInfoList.add(new BankInfo(code, name, false));}}} catch (JSONException e) {e.printStackTrace();}//适配器mBankSelectedAdapter = new BankSelectedAdapter(this, mBankInfoList);

另外:获取assets下文件的路径:

**方法一:仅仅只针对assets下的单一文件,如html等,例如apk格式的就不行
** String path = “file:///android_asset/icon_wm.png”;

**方法二:**通过流的方式去处理

/*** 将asset文件写入缓存*/private boolean copyAssetAndWrite(String fileName){    try {File cacheDir=getCacheDir();        if (!cacheDir.exists()){cacheDir.mkdirs();}File outFile =new File(cacheDir,fileName);        if (!outFile.exists()){            boolean res=outFile.createNewFile();            if (!res){                return false;}}else {            if (outFile.length()>10){//表示已经写入一次return true;}}InputStream is=getAssets().open(fileName);FileOutputStream fos = new FileOutputStream(outFile);        byte[] buffer = new byte[1024];        int byteCount;        while ((byteCount = is.read(buffer)) != -1) {fos.write(buffer, 0, byteCount);}fos.flush();is.close();fos.close();        return true;} catch (IOException e) {e.printStackTrace();}    return false;
}获取路径:
File dataFile=new File(getCacheDir(),fileName);Log.d(TAG,"filePath:" + dataFile.getAbsolutePath());

以上,即可实现读取assets中文件

读取本地文件assets内容相关推荐

  1. jq ajax 读取本地文件,jquery读取本地文件

    $(document).ready(function(){ $("#b01").click(function(){ htmlobj=$.ajax({url:"/jquer ...

  2. Electron教程(五)读取本地文件内容, icpMain icpRenderer 之间的交互

    Electron教程(五)读取本地文件内容, ipcMain ipcRenderer 之间的交互 Electron教程(一)什么是 Electron,由来.适用场景 和 Electron 的环境搭建 ...

  3. 保存页面文本到本地文件读取本地文件内容到页面

    问题描述:假设网页有个文本框之类的东西,想通过点击某一按钮后,将用户在文本框中输入的内容直接保存在本地某个文件中.同理,也想通过页面直接读取本地文件中的内容. 问题分析:因为整个处理过程不涉及到后台的 ...

  4. Java读取本地文件内容并输出

    下面是读取本地文件并输出内容的Java代码. 如果文件有中文,可能会乱码需要设置软件的编码格式. public static void readFile() {FileReader fileReade ...

  5. vue 读取本地文件内容

    将本地文件中内容显示在页面上 <el-button type="success" id="fileImport" v-on:click="cli ...

  6. java读取本地文件_java 读取本地文件实例详解

    java 读取本地文件实例详解 用javax.xml.w3c解析 实例代码: package cn.com.xinli.monitor.utils; import org.w3c.dom.Docume ...

  7. python读取本地文件-python解析本地HTML文件

    Python使用爬虫技术时,每运行一次,本地都会访问一次主机.为避免完成程序前调试时多次访问主机增加主机负荷,我们可以在编写程序前将网页源代码存在本地,调试时访问本地文件即可.现在我来分享一下爬取资料 ...

  8. 用Groovy读取本地文件的代码

    下面这些包默认已经被导入了,不需要使用import再次显式导入: java.io.* java.lang.* java.math.BigDecimal java.math.BigInteger jav ...

  9. java接收并存储文件_客户端读取本地文件的数据,发送到服务器,服务器接收并存储到文件中...

    只实现了传送文件的功能. 编写Socket客户端和服务器程序,客户端读取本地文件的数据,发送到服务器,服务器接收并存储到文件中. 消息格式: 字段 长度(单位字节) 内容 -------------- ...

  10. java 读取本地文件_java 读取本地文件实例详解

    java 读取本地文件实例详解 用javax.xml.w3c解析 实例代码: package cn.com.xinli.monitor.utils; import org.w3c.dom.Docume ...

最新文章

  1. 命令行的全文搜索工具--ack
  2. 用贝叶斯定理解决三门问题并用Python进行模拟(Bayes' Rule Monty Hall Problem Simulation Python)...
  3. linux lvm 镜像,LVM实现逻辑卷镜像
  4. CopyOnWrite容器
  5. Multi-Scale Densenet续作?搞定Transformer降采样,清华联合华为开源动态ViT!
  6. 笔试题:写一个ArrayList 的动态代理类
  7. 7-68 阶乘计算 (15 分)
  8. QColorDialog中Pick Screen Color、Ok、Cancel不能汉化解决
  9. 什么原因成就了一位优秀的程序员?(转)
  10. Python爬虫学习二爬虫基础了解
  11. java变量命名规则_浅谈JAVA开发规范与开发细节(上)
  12. python glob.glob使用
  13. python 面向对象_多态、内置方法、反射
  14. 程序静默安装的参数总结
  15. python第五章自己的笔记总结(6)
  16. 使用VLC-QT开源库开发流媒体播放器
  17. mindmanager2021下载 最新版如何更新
  18. java 美发管理系统_美容美发管理系统毕业论文.doc
  19. excel下拉隐藏_在Excel下拉列表中隐藏使用过的项目
  20. 诈金花游戏单机版 附开源地址

热门文章

  1. VMware虚拟机12个使用技巧
  2. python主函数调用子函数,实现excel数据写入
  3. 如何禁用或重新启用计算机的休眠功能
  4. vue——菜鸟教程学习
  5. 使用Poedit汉化wordpress主题
  6. 华为网络安全论述题解析(1)
  7. 关于单位申请进京指标
  8. Qt信号和槽机制详解
  9. steam怎么解除共享_如何启用Steam家庭共享(及其功能)
  10. C# gdal创建和读取tiff文件