2013-8-22 android开发问题

1.json与java对象互转,

 Gson gson = new Gson(); 
String json = gson.toJson(java对象);
 JSONObject docInfo = new JSONObject(json);
 jsonArray.put(i, docInfo);


String tempDoc="json串 数组"
Gson gson = new Gson(); 
dlist = gson.fromJson(tempDoc, new TypeToken<List<DocEntity>>(){}.getType());//得到文档对象数组


2.读取本地文件 之字符乱码问题(就是编码问题)

 /**
     * 读取文件内容,返回字符串
     * @param fis
     * @return
     * @throws IOException
     */
    public static String readfileforString(FileInputStream fis) throws IOException{
    	String result=null;
         String line =null;
          BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"GB2312")) ;
          while((line = reader.readLine())!=null){
        	  if(result==null){
        		  result=line;
        	  }else{
        		  result=result+line;
        	  }
          }
          fis.close();
    	return result;
    }

3.访问 assets目录下的文件

 (1)。String path="file:///android_asset/a.jpg"

   (2). 

AssetManager类可用于访问assets目录下文件,assets目录下存放的,也是资源文件,然而与res下相比有所不同:

一、 存放在res/raw下的文件,会相应的生成ID,而在assets下的文件,不会生成ID; 

二、   asset和res下的文件都是只能读不能写的;

三、    在AssertManager中不能处理单个超过 1MB的文件,不然会报异常,而第二种raw没这个限制。

用:InputStream in = getResources().getAssets().open(fileName,AssetManager.ACCESS_RANDOM);读取其中文件,当读取一个400多K的文件时,仍然正常,然而在读取一个7M多的文本时,虽然in.avaibile能显示出正确的流长度,也未报异常,但在read后,所得字符串长度为0。或许用raw格式访问方法可以读取,但考虑到很少在assets中放置如此大的文本,所以暂不管这一步。若读取存储卡上的文件,则不需用AssetManager类。可以自由访问。

另,open返回的是InputStream对象,虽open时有ACCESS_RANDOM模式,然而InputStream却没有类似seek的方法对应,不知如何实现随机读取。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值