Android 读写文件方法汇总

2016-02-19 08:59 5 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - 编程语言 】

一、 从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)
代码如下:

String res = "";
try{
InputStream in = getResources().openRawResource(R.raw.bbi);
//在Testresrawbbi.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);
// Testassetsyan.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-windowstoolsadb.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);

四、 写文件, 一般写在datadatacom.testfiles里面,打开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是任何文件都可以

来源:http://www.tulaoshi.com/n/20160219/1589082.html

延伸阅读
标签: 电脑入门
你是不是曾经后悔将一个已经花了三天时间的项目删除到回收站中?是不是感觉已经清空了回收站就无计可施了?那么应当怎么办呢?再一次尴尬的求助还是从头再做一遍?不用担心,现在你就可以拥有一项应对之策。 对于那些在个人计算机或者服务器支持行业工作的人,或那些将其文件意外删除并清空了回收站的人,拥有一款性能良好的文件...
标签: 电脑入门
我们都知道Linux下如何删除系统文件,但是有时删的不彻底,要如何彻底删除文件呢?下面图老师小编就给大家介绍下彻底删除Linux文件的方法,一起来学习下吧。 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 ...
直接利用DAO来创建、读写Access文件,总的说来,对比上篇《直接通过ODBC读、写Excel文件》来讲,要简单一些。在下面的示例中,我们将用到两种方法:SQL和DAO类函数来混合实现它们,这样做的目地,我想可以使大家更加方便灵活的运用它们来完成你想要做的东西。在示例程序中默认指定创建数据库名为:Demo.mdb,内部表名为:DemoTable,写入两...
程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下: 1. android.permission.ACCESS_CHECKIN_PROPERTIES     允许读写访问”properties”表在 checkin数据库中,改值可以修改上传( Allows read/write access to the “properties” table in the checkin database, to change values t...
COBOL语言是什么 它是常用语是一种不常用的变成语言,在大众眼中并不被熟知,COBOL语言大多运用在数据的收集。如现在常用的银行、企业统计等领域。常见操作界面即是DOS和UNIX界面,相对windows编程平台过于单一,但是也是非常好就业的方面。 cobol语言常用吗 就现在来说cobol语言并不常用语人们所见的编程语言范围,学习难度...

经验教程

532

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部