`
songylwq
  • 浏览: 127268 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

android 读写文件

 
阅读更多

一、<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)

String res = "";<wbr></wbr>

try{<wbr></wbr>

InputStream in = getResources().openRawResource(R.raw.bbi);<wbr></wbr>

//\Test\res\raw\bbi.txt,

<wbr><wbr></wbr></wbr> int length = in.available();<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> byte [] buffer = new byte[length];<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> in.read(buffer);<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> //res = EncodingUtils.getString(buffer, "UTF-8");

<wbr><wbr></wbr></wbr> //res = EncodingUtils.getString(buffer, "UNICODE");<wbr></wbr>

<wbr><wbr></wbr></wbr> res = EncodingUtils.getString(buffer, "BIG5");<wbr></wbr>

<wbr><wbr></wbr></wbr> //bbi.txt的编码类型选择合适的编码,如果不调整会乱码

<wbr><wbr></wbr></wbr> in.close();<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> }catch(Exception e){<wbr></wbr>

<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> e.printStackTrace();<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> }<wbr></wbr>

myTextView.setText(res);//把得到的内容显示在TextView

<wbr></wbr>

二、<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> asset中获取文件并读取数据(资源文件只能读不能写)

String fileName = "yan.txt"; //文件名字

String res="";<wbr></wbr>

try{<wbr></wbr>

<wbr><wbr></wbr></wbr> InputStream in = getResources().getAssets().open(fileName);

<wbr><wbr></wbr></wbr> // \Test\assets\yan.txt这里有这样的文件存在

<wbr><wbr></wbr></wbr> int length = in.available();<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

byte [] buffer = new byte[length];<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

in.read(buffer);<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

res = EncodingUtils.getString(buffer, "UTF-8");<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>

}catch(Exception e){<wbr></wbr>

<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> e.printStackTrace();<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> }

<wbr></wbr>

三、<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> sdcard中去读文件,首先要把文件通过\android-sdk-windows\tools\adb.exe把本地计算机上的文件copysdcard上去,adb.exe push e:/Y.txt /sdcard/, 不可以用adb.exe push e:\Y.txt \sdcard\ 同样: 把仿真器上的文件copy到本地计算机上用: adb pull ./data/data/com.tt/files/Test.txt e:/

<wbr></wbr>

String fileName = "/sdcard/Y.txt";

//也可以用String fileName = "mnt/sdcard/Y.txt";

String res="";<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>

try{<wbr></wbr>

FileInputStream fin = new FileInputStream(fileName);

//FileInputStream fin = openFileInput(fileName);<wbr><wbr></wbr></wbr>

//用这个就不行了,必须用FileInputStream

<wbr><wbr><wbr></wbr></wbr></wbr> int length = fin.available();<wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr> byte [] buffer = new byte[length];<wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr> fin.read(buffer);<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr> res = EncodingUtils.getString(buffer, "UTF-8");<wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr> fin.close();<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr> }catch(Exception e){<wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> <wbr><wbr></wbr></wbr> e.printStackTrace();<wbr></wbr>

}<wbr></wbr>

myTextView.setText(res);

<wbr></wbr>

四、<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> 写文件, 一般写在\data\data\com.test\files\里面,打开DDMS查看file explorer是可以看到仿真器文件存放目录的结构的

<wbr><wbr></wbr></wbr> String fileName = "TEST.txt";

<wbr><wbr></wbr></wbr> String message = "FFFFFFF11111FFFFF" ;

writeFileData(fileName, message);

<wbr><wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> public voidwriteFileData(String fileName,String message){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> try{<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE);

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> byte [] bytes = message.getBytes();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> fout.write(bytes);<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> fout.close();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> catch(Exception e){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> e.printStackTrace();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> }<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

五、<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> 写, data/data/目录(相当AP工作目录)上的文件,openFileOutput

<wbr><wbr></wbr></wbr> //写文件在./data/data/com.tt/files/下面

<wbr><wbr></wbr></wbr> public voidwriteFileData(String fileName,String message){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> try{<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE);

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> byte [] bytes = message.getBytes();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> fout.write(bytes);<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> fout.close();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> catch(Exception e){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> e.printStackTrace();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> }

//-------------------------------------------------------

//读文件在./data/data/com.tt/files/下面

<wbr><wbr></wbr></wbr> public String readFileData(String fileName){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> String res="";<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> try{<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> FileInputStream fin = openFileInput(fileName);<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> int length = fin.available();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> byte [] buffer = new byte[length];<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> fin.read(buffer);<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> res = EncodingUtils.getString(buffer, "UTF-8");<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> fin.close();<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> catch(Exception e){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> e.printStackTrace();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> return res;<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr></wbr>}<wbr><wbr><wbr></wbr></wbr></wbr>

六、<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> 写, sdcard目录上的文件,要用FileOutputStream 不能用openFileOutput

<wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr> //写在/mnt/sdcard/目录下面的文件

<wbr><wbr></wbr></wbr> public voidwriteFileSdcard(String fileName,String message){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> try{<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> //FileOutputStream fout = openFileOutput(fileName, MODE_PRIVATE);

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> FileOutputStream fout = newFileOutputStream(fileName);

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> byte [] bytes = message.getBytes();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> fout.write(bytes);<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> fout.close();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> catch(Exception e){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> e.printStackTrace();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> }

<wbr><wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> //读在/mnt/sdcard/目录下面的文件

<wbr><wbr></wbr></wbr> public String readFileSdcard(String fileName){

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> String res="";<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> try{<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> FileInputStream fin = new FileInputStream(fileName);<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> int length = fin.available();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> byte [] buffer = new byte[length];<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> fin.read(buffer);<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> res = EncodingUtils.getString(buffer, "UTF-8");<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> fin.close();<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> catch(Exception e){<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr> e.printStackTrace();<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> }<wbr></wbr>

<wbr><wbr></wbr></wbr> <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> return res;<wbr></wbr>

<wbr><wbr></wbr></wbr> }

<wbr></wbr>

注: openFileOutput是在raw里编译过的,FileOutputStream是任何文件都可以

转自:http://blog.sina.com.cn/s/blog_4d25c9870100qpax.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics