android文件的读写,android文件读写权限
android本地文件的读写是不是配置文件的读写
不是,本地文件的读写是指手机内部文件(手机本身自带的文件或内存卡的文件)读写!你说的配置文件的读写可以理解成其中的一部分。而且android对不同文件的读取方式也有不同,如果是工程内的配置文件读写的话会有专门的api去读取,如果是工程外文件直接使用JAVA中FILE类加载手机路径进行读写!在读写时应该给该工程加上读写文件的权限!!!
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了奉贤免费建站欢迎大家使用!
Android开发之如何读写文件
【转】
首先介绍如何存储数据,显然,要将数据从应用中输出到文件中,必须得到一个输出流outPutStream,然后往输出流中写入数据,在这里Android自带了一个得到应用输出流的方法
FileOutputStream fos =context.openFileOutput(“yuchao.txt”,Context.MODE_PRIVATE); (1)
其中第一个属性为文件名,第二个属性为读写模式(有关读写模式的说明下面将详细阐述),
然后在文件输出流fos中便可以写入数据
Fos.write(“Hi,”I’m Chao Yu!”.getBytes());
用完文件输出流之后记得关闭
fos.close();
这样,在/data/data/packageName/file目录下就生成了一个文件名为yuchao.txt的文件,文件中的内容为” Hi,I’m Chao Yu!”
有关(1)中读写模式其实就是制定创建文件的权限以及在读写的时候的方式,Android中提供了以下几种读写模式
Context.MODE_PRIVATE = 0
该模式下创建的文件其他应用无权访问,并且本应用将覆盖原有的内容
Context.MODE_APPEND = 32768
该模式下创建的文件其他应用无权访问,并且本应用将在原有的内容后面追加内容
Context.MODE_WORLD_READABLE = 1
该模式下创建的文件其他应用有读的权限
Context.MODE_WORLD_WRITEABLE = 2
该模式下创建的文件其他应用有写的权限
如果需要将文件设置为外部应用可以读写,可将读写模式设置为Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE
一般情况下,各个应用维护的数据都在一个特定的文件夹中,即上面所提到的/data/data/packageName/file(存在于手机存储中),但手机内存毕竟有限,所以有些情况下,我们需要往SD卡中写入数据文件,这其实和普通的java web 应用步骤一样,都是先创建特针对特定目录特定文件的输出流,然后往输出流中写数据,这里要注意一个方法,就是获取SD卡根目录的方法,随着Android系统不断升级,SD卡的根目录随时都有可能改变,Android中得到SD卡根目录的方法是
File sdCardDir = Environment.getExternalStorageDirectory();
然后就可以进行下面的步骤
File saveFile = new File(sdCardDir, “yuchao.txt”);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("Hi,I’m ChaoYu".getBytes());
outStream.close();
值得注意的是,在往SD卡中写数据的时候,健壮的代码必须考虑SD卡不存在或者写保护的情况,故在写入之前,先做判断
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
……
}
接着,我们来学习下我们的应用程序如何读取文件中的数据,其实就是写的逆向过程
若要读取应用程序默认维护的文件(即/data/data/packageName/file目录下的文件),首先得到文件输入流
FileInputStream istream = this.context.openFileInput(“yuchao.txt”);
然后在内存中开辟一段缓冲区
byte[] buffer = new byte[1024];
然后创建一个字节数组输出流
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
读出来的数据首先放入缓冲区,满了之后再写到字符输出流中
while((len=istream.read(buffer))!=-1){
ostream.write(buffer, 0, len);
}
最后关闭输入流和输出流
istream.close();
ostream.close();
将得到的内容以字符串的形式返回便得到了文件中的内容了,这里的流操作较多,故以一张图片来说明,见图1
return new String(ostream.toByteArray());
从SD卡中读取数据与上述两个步骤类似,故不再赘述,留给读者自己思考
如在开发过程中进行SD卡地读写,切忌忘了加入权限
uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/
至此,Android系统中有关文件数据的读写介绍完毕。
Android 中的文件读写操作
IO流(操作文件内容): 字节流
参考:
AssetManager
assets 文件夹用于存储应用需要的文件,在安装后可直接从其中读取使用或者写入本地存储中
Android Studio 默认不建立该文件夹,可以手动新建 : app - src - main - assets
或者,右键 main - New - Folder - Assets Folder
AssetManager 对象可以直接访问该文件夹:
获取方法:
使用函数 open 可以打开 assets 文件夹中对象,返回一个 InputStream 对象:
open
获取方法:
Android TXT文件读写
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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");////依Y.txt的编码类型选择合适的编码,如果不调整会乱码
fin.close();//关闭资源
System.out.println("res---"+res);
int a=Integer.parseInt(res.substring(3, 5));
int b=Integer.parseInt(res.substring(8, 10));
System.out.println(a+"res---"+b);//获取的a.b
} catch (Exception e) {
e.printStackTrace();
}
}
希望能解决您的问题。
如何读写Android文件
在android中的文件放在不同位置,它们的读取方式也有一些不同。
本文对android中对资源文件的读取、数据区文件的读取、SD卡文件的读取及RandomAccessFile的方式和方法进行了整理。供参考。
当前标题:android文件的读写,android文件读写权限
分享链接:http://ybzwz.com/article/hoojdj.html