在上一节我们介绍了Android的数据存储之SharedPreferences,我们知道利用SharedPreferences一般存储的内容是一些key-value键值对,而有时候我们却要存储的是一些数据内容,这时候我们可以采用文件存储,在Android系统中,我们可以很方便的利用文件存储我们想要的内容
Context为我们提供了以下的几个方法
方法名称
|
描述
|
FileInputStream
openFileInput(String name)
|
打开应用程序的数据文件夹下的name文件对应的输入流
|
FileOutputStream
openFileOutput(String name,int mode)
|
打开应用程序的数据文件夹下的name文件对应的输出流,并且指定以某种方式打开。
|
第二个方法里的第二个参数有以下几种取值:
MODE_PRIVATE:说明该文件只能被当前的应用程序所读写
MODE_APPEND:以追加方式打开该文件,应用程序可以向该文件中追加内容。
MODE_WORLD_READABLE:该文件的内容可以被其他的应用程序所读取
MODE_WORLD_WRITEABLE:该文件的内容可以被其他的应用程序所读、写
还有一些Context为我们提供了其他几个方法用来访问应用程序的数据文件夹
方法名称
|
描述
|
getDir(String
name,int mode)
|
在应用程序的数据文件下获取或创建name对应的子目录
|
File
getFilesDir()
|
得到该应用程序数据文件夹的绝对路径
|
String[]
fileList()
|
等到该应用程序数据文件夹下的全部文件
|
deleteFile(String
name)
|
删除该应用程序的数据文件夹下的指定文件
|
文件存储的位置:/data/data/<package
name>/files/
关于IO流的一些内容,可以参看我之前写的一篇博客:
http://blog.csdn.net/jiahui524/article/details/6869524
http://blog.csdn.net/jiahui524/article/details/6869615
实例:File的简单操作
-
packagecom.jiahui.filedemo;
-
-
importjava.io.FileNotFoundException;
-
importjava.io.InputStream;
-
importjava.io.OutputStream;
-
-
importandroid.app.Activity;
-
importandroid.os.Bundle;
-
importandroid.view.View;
-
importandroid.widget.Button;
-
importandroid.widget.EditText;
-
importandroid.widget.TextView;
-
-
publicclassFileDemoActivityextendsActivity{
-
-
privateButtonbtnWrite,btnRead,btnGetDir;
-
privateEditTextedtContent;
-
privateTextViewtvResult,tvFileDir;
-
-
publicvoidonCreate(BundlesavedInstanceState){
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.main);
-
-
edtContent=(EditText)this.findViewById(R.id.edtContent);
-
tvResult=(TextView)this.findViewById(R.id.tvResult);
-
tvFileDir=(TextView)this.findViewById(R.id.tvFileDir);
-
-
btnWrite=(Button)this.findViewById(R.id.btnWrite);
-
btnRead=(Button)this.findViewById(R.id.btnRead);
-
btnGetDir=(Button)this.findViewById(R.id.btnGetDir);
-
-
-
btnWrite.setOnClickListener(newView.OnClickListener(){
-
-
@Override
-
publicvoidonClick(Viewv){
-
-
try{
-
-
Stringcontent=edtContent.getText().toString();
-
-
OutputStreamoutputStream=FileDemoActivity.this
-
.openFileOutput("test.txt",MODE_APPEND);
-
-
if(content!=null){
-
outputStream.write(content.getBytes(),0,
-
content.getBytes().length);
-
}
-
-
outputStream.close();
-
}catch(Exceptione){
-
-
e.printStackTrace();
-
}
-
-
}
-
});
-
-
-
btnRead.setOnClickListener(newView.OnClickListener(){
-
-
@Override
-
publicvoidonClick(Viewv){
-
try{
-
StringBuildersb=newStringBuilder();
-
InputStreaminputStream=FileDemoActivity.this
-
.openFileInput("test.txt");
-
-
byte[]buffer=newbyte[1024];
-
intlen=0;
-
while((len=inputStream.read(buffer))!=-1){
-
sb.append(newString(buffer,0,len));
-
}
-
-
tvResult.setText("读取结果为:"+sb.toString());
-
}catch(Exceptione){
-
-
e.printStackTrace();
-
}
-
-
}
-
});
-
-
-
btnGetDir.setOnClickListener(newView.OnClickListener(){
-
-
@Override
-
publicvoidonClick(Viewv){
-
StringabsolutePath=FileDemoActivity.this.getFileStreamPath(
-
"test.txt").getAbsolutePath();
-
tvFileDir.setText(absolutePath);
-
}
-
});
-
-
}
-
}
实现效果:
用File Explorer查看,我们可以看到在相应的包下如下效果:
如需转载引用请注明出处:http://blog.csdn.net/jiahui524
分享到:
相关推荐
从头学Android之Android的数据存储--SQLite示例源代码
从头学Android之多媒体--使用MediaPlayer播放音频示例代码
从头学Android之ContentProvider示例源代码
教程名称:Photoshop从头学起课程目录:【】Photoshop从头学起第(1-10)【】Photoshop从头学起第(11-20)【】Photoshop从头学起第(21-30)【】Photoshop从头学起第(31-40)【】Photoshop从头学起第(41-50)【】Photoshop...
由于Android构建在开源代码的框架之上,而且提供了强大的SDK库和开放的理念,所以它为广大的没有任何移动应用程序开发经验的新手开辟了一条开发完美的移动应用程序的康庄大道。而富有经验的移动开发人员现在也可以...
Android上的TensorFlow与LSTM一起进行人类活动识别 可以在找到完整的说明。 源代码与TensorFlow 1.1兼容 从头开始动手学习机器 有兴趣更深入地了解机器学习算法吗? 从头开始在Python中实现它们:
从头学Qt Quick(3)-- 用QML写一个简单的颜色选择器 我的博客:http://www.cnblogs.com/csulennon/p/qml.html
跟我从头学WSh跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar跟我从头学WSH.rar
菜鸟破解从头学之全教程 第一章--前言 (共九章) 本章只作一些说明,现在也说了这么多了,没别的了,卖个广告,推荐几本书吧。 首先,力荐看雪老大《加密与解密--软件保护技术及完全解决方案》,绝对物超所值,...
从头开始学习MySQL and PHP
开始Android的游戏提供一切您需要加入Android的游戏开发成功的行列。你会开始与游戏设计基础和编程的基础,然后逐步实现建立自己的基本的游戏引擎和游戏可玩。这会给你一切你需要另辟蹊径,写自己的Android游戏...
Jellyfin Android Jellyfin Mobile是一个Android应用程序,可连接到Jellyfin实例并与集成。 我们欢迎所有贡献并提出要求! 如果您打算使用更大的功能,请提出一个问题,以便我们在开始之前讨论实现。 即使客户端只是...
2. Per base sequence quility:每个测序read上各碱基质量 3. Per sequence quility scores:每条序列质
android游戏从头编以及其他2本书,写的都比较仔细
赖世雄英语从头学 下载-附件资源
Green Build是一款开源Android应用程序,从头开始构建,可随时管理您的CI构建。 Green Build允许您在支持的CI平台上查看和管理您的持续集成项目。
\菜鸟破解从头学全教程.txt\菜鸟破解从头学全教程.txt\菜鸟破解从头学全教程.txt\菜鸟破解从头学全教程.txt\菜鸟破解从头学全教程.txt
1.顺序存储 ...与顺序存储相比,允许存储空间不连续,插入删除时不需要移动大量的元素,只需修改指针即可,但查找某个元素,只能从头遍历整个链表。 Java中使用嵌套类来定义节点的抽象数据类型:
安卓学习课程配套的PPT 用于从头开始进行安卓的学习开发