[转]Android读写文件

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

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

String res ="";

try{

InputStream in =getResources().openRawResource(R.raw.bbi);

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

intlength = in.available();

byte[] buffer =newbyte[length];

in.read(buffer);

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

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

res = EncodingUtils.getString(buffer,"BIG5");

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

in.close();

}catch(Exception e){

e.printStackTrace();

}

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

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

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

String res="";

try{

InputStream in = getResources().getAssets().open(fileName);

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

intlength = in.available();

byte[] buffer =newbyte[length];

in.read(buffer);

res = EncodingUtils.getString(buffer,"UTF-8");

}catch(Exception e){

e.printStackTrace();

}

三、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:/

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

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

String res="";

try{

FileInputStream fin =newFileInputStream(fileName);

//FileInputStream fin =openFileInput(fileName);

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

intlength = fin.available();

byte[] buffer =newbyte[length];

fin.read(buffer);

res = EncodingUtils.getString(buffer,"UTF-8");

fin.close();

}catch(Exception e){

e.printStackTrace();

}

myTextView.setText(res);

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

String fileName ="TEST.txt";

String message ="FFFFFFF11111FFFFF";

writeFileData(fileName, message);

publicvoidwriteFileData(String fileName,String message){

try{

FileOutputStream fout =openFileOutput(fileName,MODE_PRIVATE);

byte[] bytes = message.getBytes();

fout.write(bytes);

fout.close();

}

catch(Exception e){

e.printStackTrace();

}

}

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

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

publicvoidwriteFileData(String fileName,String message){

try{

FileOutputStream fout =openFileOutput(fileName,MODE_PRIVATE);

byte[] bytes = message.getBytes();

fout.write(bytes);

fout.close();

}

catch(Exception e){

e.printStackTrace();

}

}

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

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

publicString readFileData(String fileName){

String res="";

try{

FileInputStream fin = openFileInput(fileName);

intlength = fin.available();

byte[] buffer =newbyte[length];

fin.read(buffer);

res = EncodingUtils.getString(buffer,"UTF-8");

fin.close();

}

catch(Exception e){

e.printStackTrace();

}

returnres;

}

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

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

publicvoidwriteFileSdcard(String fileName,String message){

try{

//FileOutputStreamfout= openFileOutput(fileName, MODE_PRIVATE);

FileOutputStream fout =newFileOutputStream(fileName);

byte[] bytes = message.getBytes();

fout.write(bytes);

fout.close();

}

catch(Exception e){

e.printStackTrace();

}

}

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

publicString readFileSdcard(String fileName){

String res="";

try{

FileInputStream fin =newFileInputStream(fileName);

intlength = fin.available();

byte[] buffer =newbyte[length];

fin.read(buffer);

res = EncodingUtils.getString(buffer,"UTF-8");

fin.close();

}

catch(Exception e){

e.printStackTrace();

}

returnres;

}

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

参考:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6017.html

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android中attrs.xml文件的使用详解
  4. Android(安卓)- Eclipse 基础修改
  5. eclipse ADT在线安装 https://dl-ssl.google.com/android/eclips
  6. 新建android工程 没有R.java文件
  7. Android官方技术文档翻译—— Eclilpse项目迁移
  8. 【Android】21.3 动画
  9. Android自定义Dialog(自定义主题、自定义布局)

随机推荐

  1. Android中电池信息(Battery information)
  2. Failed to extract native libraries, re
  3. Android(安卓)5.0 Binder编译问题及解决
  4. StevGuo系列文章翻译之Android中的输入事
  5. 时间戳和日期之间的转换
  6. Android(安卓)学习记录
  7. Android(安卓)Material Design 中的Corrd
  8. Android(安卓)动画之属性动画ObjectAnima
  9. RadioGroup没有文字只显示图片,图片居中问
  10. android自定义View、ViewGroup