Android 读写文件方法汇总

 更新时间:2013年07月29日 09:57:43   作者:  
以下是对Android中读写文件的方法进行了汇总介绍,需要的朋友可以过来参考下
一、 从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)
复制代码 代码如下:

String res = "";
try{
InputStream in = getResources().openRawResource(R.raw.bbi);
//在\Test\res\raw\bbi.txt,
int length = in.available();
byte [] buffer = new byte[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这里有这样的文件存在
int length = in.available();
byte [] buffer = new byte[length];
in.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
}catch(Exception e){
e.printStackTrace();
}

三、 从sdcard中去读文件,首先要把文件通过\android-sdk-windows\tools\adb.exe把本地计算机上的文件copy到sdcard上去,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 = new FileInputStream(fileName);
//FileInputStream fin = openFileInput(fileName);
//用这个就不行了,必须用FileInputStream
int length = fin.available();
byte [] buffer = new byte[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);
public voidwriteFileData(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/下面
public voidwriteFileData(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/下面
public String readFileData(String fileName){
String res="";
try{
FileInputStream fin = openFileInput(fileName);
int length = fin.available();
byte [] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
fin.close();
}
catch(Exception e){
e.printStackTrace();
}
return res;
}

六、 写, 读sdcard目录上的文件,要用FileOutputStream, 不能用openFileOutput
复制代码 代码如下:

//写在/mnt/sdcard/目录下面的文件
public voidwriteFileSdcard(String fileName,String message){
try{
//FileOutputStream fout = openFileOutput(fileName, MODE_PRIVATE);
FileOutputStream fout = newFileOutputStream(fileName);
byte [] bytes = message.getBytes();
fout.write(bytes);
fout.close();
}
catch(Exception e){
e.printStackTrace();
}
}
//读在/mnt/sdcard/目录下面的文件
public String readFileSdcard(String fileName){
String res="";
try{
FileInputStream fin = new FileInputStream(fileName);
int length = fin.available();
byte [] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
fin.close();
}
catch(Exception e){
e.printStackTrace();
}
return res;
}

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

相关文章

  • Android实现滑动刻度尺效果

    Android实现滑动刻度尺效果

    这篇文章主要为大家详细介绍了Android实现滑动刻度尺效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Android开发之permission动态权限获取详解

    Android开发之permission动态权限获取详解

    这篇文章主要为大家详细介绍了Android开发之permission动态权限获取,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Android ListView的Item点击效果的定制

    Android ListView的Item点击效果的定制

    这篇文章主要介绍了Android ListView的Item点击效果的定制的相关资料,需要的朋友可以参考下
    2017-07-07
  • Android动态给ViewPager添加Indicator导航

    Android动态给ViewPager添加Indicator导航

    这篇文章主要为大家详细介绍了Android动态给ViewPager添加Indicator导航的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android实现屏幕旋转方法总结

    Android实现屏幕旋转方法总结

    这篇文章主要介绍了Android实现屏幕旋转方法,实例总结了屏幕旋转的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • AndroidStudio 实现加载字体资源的方法

    AndroidStudio 实现加载字体资源的方法

    这篇文章主要介绍了AndroidStudio 实现加载字体资源的方法的相关资料,这里提供了详细的实现方法,需要的朋友可以参考下
    2016-11-11
  • Android实现带指示点的自动轮播无限循环效果

    Android实现带指示点的自动轮播无限循环效果

    这篇文章主要为大家详细介绍了Android实现带指示点的自动轮播无限循环效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • PagerSlidingTabStrip制作Android带标签的多界面滑动切换

    PagerSlidingTabStrip制作Android带标签的多界面滑动切换

    这篇文章主要介绍了使用PagerSlidingTabStrip制作Android带标签的多界面滑动切换效果的方法,PagerSlidingTabStrip是GitHub上的一个开源项目,调用这个库可以少写不少代码XD 需要的朋友可以参考下
    2016-04-04
  • Android使用 PopupWindow 实现底部弹窗功能

    Android使用 PopupWindow 实现底部弹窗功能

    这篇文章主要介绍了Android使用 PopupWindow 实现底部弹窗功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 详解Android的Handler机制原理

    详解Android的Handler机制原理

    Android的Handler机制是一种用于处理和调度线程之间消息传递的机制,通常用于在后台线程中执行任务,并将结果返回到主线程中更新UI,Handler机制的核心是Message和MessageQueue,以及Looper,本文给大家详细讲解了Android的Handler机制原理,需要的朋友可以参考下
    2023-10-10

最新评论