android中常用的读取文件的用法如下

1. 从resource的raw中读取文件数据:

String res = "";

try{

//得到资源中的Raw数据流

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

//得到数据的大小

int length = in.available();

byte [] buffer = new byte[length];

//读取数据

in.read(buffer);

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

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

//关闭

in.close();

}catch(Exception e){

e.printStackTrace();

}

2. 从resource的asset中读取文件数据

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

String res="";

try{

//得到资源中的asset数据流

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

int length = in.available();

byte [] buffer = new byte[length];

in.read(buffer);

in.close();

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

}catch(Exception e){

e.printStackTrace();

}

3. 读写/data/data/<应用程序名>目录上的文件:

//写数据

public void writeFile(String fileName,String writestr) throws IOException{

try{

FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE);

byte [] bytes = writestr.getBytes();

fout.write(bytes);

fout.close();

}catch(Exception e){

e.printStackTrace();

}
//读数据

public String readFile(String fileName) throws IOException{

String res="";

try{

FileInputStream fin = new FileInputStream(jsonFlie);

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;

}

4. 读写SD卡中的文件。也就是/mnt/sdcard/目录下面的文件

//写数据到SD中的文件

public void writeFileSdcardFile(String fileName,String write_str) throws IOException{

try{

FileOutputStream fout = new FileOutputStream(fileName);

byte [] bytes = write_str.getBytes();

fout.write(bytes);

fout.close();

}catch(Exception e){

e.printStackTrace();

}

}
//读SD中的文件

public String readFileSdcardFile(String fileName) throws IOException{

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;

}

5. 使用File类进行文件的读写:

//读文件

public String readSDFile(String fileName) throws IOException {

File file = new File(fileName);

FileInputStream fis = new FileInputStream(file);

int length = fis.available();

byte [] buffer = new byte[length];

fis.read(buffer);

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

fis.close();

return res;

}

//写文件

public void writeSDFile(String fileName, String write_str) throws IOException{

File file = new File(fileName);

FileOutputStream fos = new FileOutputStream(file);

byte [] bytes = write_str.getBytes();

fos.write(bytes);

fos.close();

}

6. [代码]五、另外,File类还有下面一些常用的操作:

String Name = File.getName();  //获得文件或文件夹的名称:

String parentPath = File.getParent();  //获得文件或文件夹的父目录

String path = File.getAbsoultePath();//绝对路经

String path = File.getPath();//相对路经

File.createNewFile();//建立文件

File.mkDir(); //建立文件夹

File.isDirectory(); //判断是文件或文件夹

File[] files = File.listFiles();  //列出文件夹下的所有文件和文件夹名

File.renameTo(dest);  //修改文件夹和文件名

File.delete();  //删除文件夹或文件

1、apk中有两种资源文件,使用两种不同的方式进行打开使用。 
raw使用InputStream in = getResources().openRawResource(R.raw.test);

asset使用InputStream in = getResources().getAssets().open(fileName);

这些数据只能读取,不能写入。更重要的是该目录下的文件大小不能超过1M。

同时,需要注意的是,在使用InputStream的时候需要在函数名称后加上throws IOException。

2、SD卡中的文件使用FileInputStream和FileOutputStream进行文件的操作。

3、存放在数据区(/data/data/..)的文件只能使用openFileOutput和openFileInput进行操作。

注意不能使用FileInputStream和FileOutputStream进行文件的操作。

4、RandomAccessFile类仅限于文件的操作,不能访问其他IO设备。它可以跳转到文件的任意位置,从当前位置开始读写。

摘自 T9Team

时间: 2024-07-31 13:09:18

android中常用的读取文件的用法如下的相关文章

Android中常用的三种存储方法浅析

Android中常用的三种存储方法浅析 Android中数据存储有5种方式: [1]使用SharedPreferences存储数据 [2]文件存储数据 [3]SQLite数据库存储数据 [4]使用ContentProvider存储数据 [5]网络存储数据 在这里我只总结了三种我用到过的或即将可能用到的三种存储方法. 一.使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置信息比如窗口状态,它的本质是基

Android中常用的工具类01

1.图片和视频缩略图工具类 import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.ThumbnailUtils; /** * 缩略图生成工具类 * @author * */ public class ThumbnailGenerateUtils { private ThumbnailGenerateUtils(){}; /** * 根据指定的图像路径和大小来获取缩略图

Android中常用的工具类02

1.读取手机联系人信息 一般用在读取手机通讯录上传,这一块比较多. import java.util.ArrayList; import java.util.List; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract.CommonDataKinds.Phon

android中常用的快捷键

android中常用的快捷键 Eclipse快捷键-方便查找,呵呵,记性不好 行注释/销注释 Ctrl+/  块注释/销注释/XML注释 Ctrl+Shift+/   Ctrl+Shift+\ 查找 查找替换 Ctrl+H  Ctrl+F 查找下一个/往回找 Ctrl+K   Ctrl+Shift+K 跳到某行 Ctrl+L,哈用惯了Editplus,不时会敲下Ctrl+G, 查找当前元素的声明 Ctrl+G 查找当前元素的所有引用 Ctrl+Shift+G 重新组织Import Ctrl+Sh

android中常用的小控件------Widgets的使用

好久没有写博客了,都不知博客怎么写了,最近突然想写博客,以帮助更多的人,却又不知道写什么好呢? 好吧  我承认我有点懒惰了,可是程序猿是不应该懒惰的哦,俺要做个好孩子. 好了言归正传,开始介绍下今天的主要内容吧! Widgets一个桌面的小控件    个人认为是很常用的,不知道大神们是不是这么觉得的呢?比如说你开发的一款音乐播放器的软件,可把基本的上一曲和下一曲.暂停的几个功能放在这个小控件里面将它显示在桌面上来,这样就很方便啦,你想要下一曲.上一曲.暂停播放的时候,就不用再打开播放器了,而是直

android中常用的弹出提示框

转自:http://blog.csdn.net/centralperk/article/details/7493731 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有

Android中常用的bitmap处理方法

收集了很多bitmap相关的处理方法,几乎全部应用在项目中,所以特记录下! package com.tmacsky.utils; import java.io.ByteArrayOutputStream; import java.io.IOException; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.gr

Android中对Log日志文件的分析

一,Bug出现了, 需要“干掉”它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只要你会看bug, android里应用开发也就很简单了. 那我们先来看看android里的ANR,怎么出现ANR呢,很简单. # adb shell # cd data/app #  monkey   -p  com.xxx.xxx   -v   3000      (com.xxx.xxx是你应用程序的包名,如果想知

进阶篇-用户界面:4.Android中常用组件

1.下拉菜单 在Web开发中,HTML提供了下拉列表的实现,就是使用<select>元素实现一个下拉列表,在其中每个下拉列表项使用<option>表示即可.这是在Web开发中一个必不可少的交互性组件,而在Android中的对应实现就是Spinner. 方法一: 以资源方式,静态展示 Spinner 选项: <Spinner android:layout_width="match_parent" android:layout_height="wra