android开发步步为营之54:读取assets,raw文件夹下文件

一、读取assets文件下文件products.json

public String readAssetFile(Context c, String file) {
        Elapsed profiler = new Elapsed();
        BufferedReader bufReader = null;
        try {
            InputStreamReader inputReader = new InputStreamReader(c.getResources().getAssets().open(file));
            bufReader = new BufferedReader(inputReader);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = bufReader.readLine()) != null)
                sb.append(line);
            return sb.toString();
        } catch (Exception e) {
            LogUtil.i(TAG, "FileUtils.getFromAssets Exception:" + file);
            return "";
        } catch (OutOfMemoryError e) {
            LogUtil.i(TAG, "FileUtils.getFromAssets OutOfMemoryError:" + file);
            return "";
        } finally {
            CommonUtils.close(bufReader);
            profiler.log("FileUtils.getFromAssets:" + file);
        }
    }

调用方法

readAssetFile(testActivity.this,"product.json");

二、读取res/raw文件夹下文件cities.txt

 private void loadAddressDataNew() {
        countries = new ArrayList<Country>();
        InputStreamReader inputStreamReader = null;
        try {
            inputStreamReader = new InputStreamReader(getResources().openRawResource(R.raw.cities), "utf8");
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
        BufferedReader reader = new BufferedReader(inputStreamReader);
        String line;
        try {
            while ((line = reader.readLine()) != null) {
                //第三位为|则该string为国家     CN|China
                if (line.substring(2, 3).equals("|")) {
                    Country country = new Country();
                    country.setCountryId(line.substring(0, 2));
                    country.setCountryName(line.substring(3));
                    countries.add(country);
                }
                //省 or 州  CN_Anhui|Anhui
                if (line.substring(0, line.lastIndexOf("|")).lastIndexOf("_") == 2) {
                    State state = new State();
                    state.setStateName(line.substring(line.lastIndexOf("|") + 1));
                    if (line.indexOf(countries.get(countries.size() - 1).getCountryId()) != -1) {
                        countries.get(countries.size() - 1).getStates().add(state);
                    }
                }

                //城市CN_Anhui_Anqing|Anqing
                if (line.substring(0, line.lastIndexOf("|")).lastIndexOf("_") > 2) {
                    City city = new City();
                    city.setCityName(line.substring(line.lastIndexOf("|") + 1));
                    int stateIndex = countries.get(countries.size() - 1).getStates().size() - 1;
                    if (line.indexOf(countries.get(countries.size() - 1).getStates().get(stateIndex).getStateName()) != -1) {
                        countries.get(countries.size() - 1).getStates().get(stateIndex).getCities().add(city);
                    }

                }
                //                }

            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
时间: 2024-10-21 20:22:59

android开发步步为营之54:读取assets,raw文件夹下文件的相关文章

Android之asset文件夹下文件的使用

1. 获取AssetManager AssetManager am = context.getAssets(); 2. 列出assets文件夹下全部文件 String[] filePathList = am.list(""); 3. 打开某个文件 InputStream is = am.open("test.txt"); 4. 获取到InputStream后,就能够通过IO库进行文件操作了.或者通过BitmapFactory.decodeStream(is)得到Bi

Android读取assert文件夹下文件的内容

示例:取资源文件显示在ScrollView当中. 1.ReadAsset.java package com.example.ReadAsset; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import java.io.IOException; import java.io.InputStream; public class ReadAsset extends Act

Android开发系列(十七):读取assets文件夹下的数据库文件

在做Android应用的时候,不可避免要用到数据库.可是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客攻克了我前面博客中写的一个小游戏的一个问题.另外也能够读取Raw文件夹下的数据库文件) 这就造成了一个问题.这个问题事实上非常好解决,解决方法例如以下: 我们首先把有数据的数据库文件放在assets资源文件夹下边,然后在apk应用启动的时候,把assets文件夹下的数据库文件的数据写入到真机的内存中去. 下边開始我们

android开发步步为营之70:android接入Google Analytics总结

求人不如求己,今天项目里要接入Google Analytics,这个是做应用统计分析用的,可以查看当前手机活跃用户,事件点击等等数据,先看看效果: 之前eclipse里面接入已经成功,昨天项目组决定项目转成使用android studio来开发,看google官方文档,官方文档https://developers.google.com/analytics/devguides/collection/android/v4/,然后官方文档里面的配置文件是用google-services.json的,这

Android读取asserts和raw文件夹下的文件

经常需要用到读取"/res/raw"和"/asserts"文件夹下的文件,索性写成工具类方便以后使用. 一.raw文件夹下的文件操作工具类: /** * raw文件夹下的文件处理工具类 * * */ public class RawFileUtils { private RawFileUtils( ){ } /** * 读取raw文件夹下的文件 * @param resourceId raw文件夹下的文件资源ID * @return 文件内容 * * */ publ

Android 使用存放在存assets文件夹下的SQLite数据库

因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机自身的存储上之后再使用,后来考虑到每次都拷贝的话效率不高,并且如果涉及到对数据库的修改操作的话拷贝之后数据就被恢复了. 因此就写了该封装,该封装只是在第一次使用数据库文件的时候把该文件夹拷贝到手机的/data/data/应用程序报名/database文件夹下,之后就直接从这个地方使用了.并且它允许你

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 分类: SharePoint2011-12-23 14:44 1584人阅读 评论(0) 收藏 举报 文档sharepointurl测试stringforms 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 1.在部署的sharepoint网站中新建一个名为“测试文档库”的文档库,并添加各级的子文件夹和子文件,用于测试 2.在VS2010中新建空

将android项目assets文件夹下的文件复制到SD卡中

<pre name="code" class="html">package com.lapel.activity.html; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.content.Context; /** * * 将assets文件夹下的文件复制

Android 开发:开源库Speex支持arm64的动态库文件

随着处理器制造工艺的不断进步,和Android系统的不断发展,最近出了arm64-v8a的架构,由于项目中用到了speex的第三方语音编解码的动态库,其他架构的处理器暂不用说,一切正常,唯独到arm64-v8a这里出问题了,在Android5.0 arm64位的手机上使用语音会报错,关于其他架构的.so文件编译不再赘述,网上都有资料.废话少说,直接上步骤: 1.下载android-ndk-r10e-windows-x86_64并解压,这个支持arm64 -v8a的编译,之前的版本都不行,我之前用