如何从sdcard读取文件

首先,我们必须明白文件储存格式是有许多种的,如utf-8,unicode等。

那么,我们如何将文件原封不动的读取出来呢,我们可以设定,文件储存的绝对路径为filepath。则代码如下:

file=new File(filepath);

FileInputStream in=new FileInputStream(file);

BufferedInputStream buf=new BufferedInputStream(in);

buf.mark(4);//设定缓存空间数

byte []f3b=new byte[3];

buf.read(f3b);

buf.reset();//数据读取重开始

if(f3b[0]==(byte)0xEF && f3b[1]==(byte)0xBB && f3b[2]==(byte)0xBF){
      reader=new BufferedReader(new InputStreamReader(buf,"utf-8"));
     }else if(f3b[0]==(byte)0xFF && f3b[1]==(byte)0xFE){
      reader=new BufferedReader(new InputStreamReader(buf,"unicode"));
     }else if(f3b[0]==(byte)0xFE && f3b[1]==(byte)0xFF){
      reader=new BufferedReader(new InputStreamReader(buf,"utf-16be"));
     }else if(f3b[0]==(byte)0xFF && f3b[1]==(byte)0xFF){
      reader=new BufferedReader(new InputStreamReader(buf,"utf-16le"));
     }else{
      reader=new BufferedReader(new InputStreamReader(buf,"GBK"));
     }

reader.read(buf);

String text = null;

for(int i=0;i<buf.length;i++){

 if(buf[i]!=13 && buf[i]!=10){//取消换行字符

text+=buf[i];

}

}

代码就是这些,希望能帮助你!

转载于:https://my.oschina.net/u/563549/blog/80555

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值