android加载本地文件数据
2015-12-03 22:05
477 查看
对于一些不变的数据,可以放数据库中,也可以放文本中。这里介绍读取文本中数据。
activity代码:
log图:
activity代码:
package com.example.textjson; import android.app.Activity; import android.os.Bundle; import android.util.Log; import java.io.*; public class MyActivity extends Activity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); getData("person_utf8.txt"); Log.e("convertCodeAndGetText",convertCodeAndGetText("person_utf8.txt")); } private void getData(String name) { InputStream is = null; byte[] buffer; try { is = getAssets().open(name); buffer = new byte[is.available()]; is.read(buffer); String json = new String(buffer,"utf-8"); Log.e("json",json); is.close(); } catch (IOException e) { e.printStackTrace(); return; } } public String convertCodeAndGetText(String name) {// 转码 String text = ""; BufferedInputStream in = null; BufferedReader reader = null; try { in = new BufferedInputStream(getAssets().open(name)); in.mark(4); byte[] first3bytes = new byte[3]; in.read(first3bytes);//找到文档的前三个字节并自动判断文档类型。 in.reset(); if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB && first3bytes[2] == (byte) 0xBF) {// utf-8 Log.e("charset","utf-8"); reader = new BufferedReader(new InputStreamReader(in, "utf-8")); } else if (first3bytes[0] == (byte) 0xFF && first3bytes[1] == (byte) 0xFE) { Log.e("charset","unicode"); reader = new BufferedReader( new InputStreamReader(in, "unicode")); } else if (first3bytes[0] == (byte) 0xFE && first3bytes[1] == (byte) 0xFF) { Log.e("charset","utf-16be"); reader = new BufferedReader(new InputStreamReader(in, "utf-16be")); } else if (first3bytes[0] == (byte) 0xFF && first3bytes[1] == (byte) 0xFF) { Log.e("charset","utf-16le"); reader = new BufferedReader(new InputStreamReader(in, "utf-16le")); } else { Log.e("charset","GBK"); reader = new BufferedReader(new InputStreamReader(in, "GBK")); } String str = reader.readLine(); while (str != null) { text = text + str + "\r\n"; str = reader.readLine(); } reader.close(); in.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return text; } }
log图:
源码:http://yunpan.cn/c3mZgpetAGyXu (提取码:7e6c)
相关文章推荐
- Android第三方开源FloatingActionButton(com.getbase.floatingactionbutton)【2】
- android 点击时背景图片 、 文字颜色变换
- Android基础之Activity系列 - Activity间的数据传递
- Android SDK 在线更新镜像服务器资源
- Android集成支付宝
- Android之mvp和mvc对比分析以及实际应用
- Android第三方开源FloatingActionButton(com.getbase.floatingactionbutton)【1】
- Android设置特定时间执行操作
- Android SurfaceView简介
- 短信发送器
- Android电话拨号器
- Intent的简介以及属性的详解
- Android SharedPreferences安全存储/AutoCompleteTextView使用/文件读写
- Activity的生命周期
- Android 手势控制解锁,滑动图片,照相,音乐切换,收音机换台,短信界面打电话
- Android作业分组与选题
- 用Intent调用系统中经常被用到的组件
- Android是否联网判断
- 设置ExpandableListView不显示分割线
- float/double数据不显示成科学计数法