Android学习笔记---文件的操作模式,各种模式之间的关系,以及沿用linux系统的安全性
来源:互联网 发布:研究生软件著作权 编辑:程序博客网 时间:2024/05/17 02:17
.Context.MODE_WORLD_WRITEABLE模式创建的文件不可以被其他应用读取,但是可以被其他
应用写入:
-----------------------
测试代码:
public void testAccessReadWriteable() throws Throwable{
String TAG="testAccessAppend";
String path="/data/data/com.credream.file/files/writeable.txt";
File file=new File(path);
ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
FileInputStream inputStream=new FileInputStream(file);
byte[] buffer=new byte[1024];
int len=0;
while ((len=inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,len);
}
byte[] data=outputStream.toByteArray();
outputStream.close();
inputStream.close();
String content=new String(data);
Log.i(TAG, content);
}
}
--------------------------------------
选中该方法,然后右键运行出现错误,提示没有权限
---------------------------------------------------
2.如果希望文件被其他应用读和写,可以传入:
openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);//这里也可以直接写3,因为前面的变量代表的整型值是1后面的是//2
--------------------------------
FileOutputStream outStream=context.openFileOutput
(filename,Context.MODE_WORLD_WRITEABLE+Context.MODE_WORLD_READABLE);
--------------------------------------------
测试代码,用于存储文件
com.credream.service
FileService.java
public void saveRW(String filename, String content) throws Exception
{
//IO j2ee
FileOutputStream outStream=context.openFileOutput
(filename,Context.MODE_WORLD_WRITEABLE+Context.MODE_WORLD_READABLE);
outStream.write(content.getBytes());//content.getBytes()这个方法
调用系统的
outStream.close();
}
-------------------------------------------
调用FileService.java--->saveRW方法,保存文件
/File/src/com/credream/file/readTest.java
public void testRW()throws Exception{
FileService service=new FileService(this.getContext());
service.saveRW("rw.txt","rw");
}
----------------------------------------
测试即可读又可写文件:rw.txt是不是可以读取:
/OherFile/src/com/credream/othertest/AccessOtherPrivateTest.java
public void testAccessRW() throws Throwable{
String TAG="testAccessAppend";
String path="/data/data/com.credream.file/files/rw.txt";
File file=new File(path);
ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
FileInputStream inputStream=new FileInputStream(file);
byte[] buffer=new byte[1024];
int len=0;
while ((len=inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,len);
}
byte[] data=outputStream.toByteArray();
outputStream.close();
inputStream.close();
String content=new String(data);
Log.i(TAG, content);
}
----------------------------------------------------------
测试即可读又可写文件:rw.txt是不是可以写入:
public void testAccessRWriteable() throws Throwable{
String path="/data/data/com.credream.file/files/rw.txt";
File file=new File(path);
FileOutputStream outputStream=new FileOutputStream(file);
outputStream.write("lidewei".getBytes());
outputStream.close();
}
在方法上右键Android junit 就可以测试可写入性了
数据写入了,但是覆盖了以前的数据,如果说希望在原来数据的基础上进行追加,可以这样
FileOutputStream outputStream=new FileOutputStream(file,true);
true就是以追加模式进行写入数据
--------------------------------------------------
1.其实,Android用的是linux系统,他的安全模式也沿用了linux系统的
所以在用文件浏览器查看的时候,会有一列:Permissions权限(来表示每个文件的权限:
-rw-r-的格式)
2.
- rw- rw- ---
-代表文件,如果是d代表文件夹
rw-代表可以被这个应用读写,-代表不可以运行
rw-同一组的其他应用也可以对他读写-
---其他应用不可以对他读写;代表不可以运行
--------------------------------------------------
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录
-------------------------------------------------------------------
应用写入:
-----------------------
测试代码:
public void testAccessReadWriteable() throws Throwable{
String TAG="testAccessAppend";
String path="/data/data/com.credream.file/files/writeable.txt";
File file=new File(path);
ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
FileInputStream inputStream=new FileInputStream(file);
byte[] buffer=new byte[1024];
int len=0;
while ((len=inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,len);
}
byte[] data=outputStream.toByteArray();
outputStream.close();
inputStream.close();
String content=new String(data);
Log.i(TAG, content);
}
}
--------------------------------------
选中该方法,然后右键运行出现错误,提示没有权限
---------------------------------------------------
2.如果希望文件被其他应用读和写,可以传入:
openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);//这里也可以直接写3,因为前面的变量代表的整型值是1后面的是//2
--------------------------------
FileOutputStream outStream=context.openFileOutput
(filename,Context.MODE_WORLD_WRITEABLE+Context.MODE_WORLD_READABLE);
--------------------------------------------
测试代码,用于存储文件
com.credream.service
FileService.java
public void saveRW(String filename, String content) throws Exception
{
//IO j2ee
FileOutputStream outStream=context.openFileOutput
(filename,Context.MODE_WORLD_WRITEABLE+Context.MODE_WORLD_READABLE);
outStream.write(content.getBytes());//content.getBytes()这个方法
调用系统的
outStream.close();
}
-------------------------------------------
调用FileService.java--->saveRW方法,保存文件
/File/src/com/credream/file/readTest.java
public void testRW()throws Exception{
FileService service=new FileService(this.getContext());
service.saveRW("rw.txt","rw");
}
----------------------------------------
测试即可读又可写文件:rw.txt是不是可以读取:
/OherFile/src/com/credream/othertest/AccessOtherPrivateTest.java
public void testAccessRW() throws Throwable{
String TAG="testAccessAppend";
String path="/data/data/com.credream.file/files/rw.txt";
File file=new File(path);
ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
FileInputStream inputStream=new FileInputStream(file);
byte[] buffer=new byte[1024];
int len=0;
while ((len=inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,len);
}
byte[] data=outputStream.toByteArray();
outputStream.close();
inputStream.close();
String content=new String(data);
Log.i(TAG, content);
}
----------------------------------------------------------
测试即可读又可写文件:rw.txt是不是可以写入:
public void testAccessRWriteable() throws Throwable{
String path="/data/data/com.credream.file/files/rw.txt";
File file=new File(path);
FileOutputStream outputStream=new FileOutputStream(file);
outputStream.write("lidewei".getBytes());
outputStream.close();
}
在方法上右键Android junit 就可以测试可写入性了
数据写入了,但是覆盖了以前的数据,如果说希望在原来数据的基础上进行追加,可以这样
FileOutputStream outputStream=new FileOutputStream(file,true);
true就是以追加模式进行写入数据
--------------------------------------------------
1.其实,Android用的是linux系统,他的安全模式也沿用了linux系统的
所以在用文件浏览器查看的时候,会有一列:Permissions权限(来表示每个文件的权限:
-rw-r-的格式)
2.
- rw- rw- ---
-代表文件,如果是d代表文件夹
rw-代表可以被这个应用读写,-代表不可以运行
rw-同一组的其他应用也可以对他读写-
---其他应用不可以对他读写;代表不可以运行
--------------------------------------------------
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录
-------------------------------------------------------------------
- Android学习笔记---文件的操作模式,各种模式之间的关系,以及沿用linux系统的安全性
- Android学习笔记---13_文件的操作模式.各个应用之间的文件权限
- GOF设计模式学习笔记 --辨析各种模式的要点和相似模式之间的区别
- GOF设计模式学习笔记 --辨析各种模式的要点和相似模式之间的区别
- 各种设计模式之间的关系和UML类图
- Android 启动模式和启动标志的关系以及各种适应的使用场合
- 设计模式之间的关系
- 三种工厂模式以及它们之间的关系
- Linux系统模式之间的转换
- android学习笔记(4)-android的文件的操作模式与单元测试
- linux学习笔记7-增强系统的安全性
- android系统的四种文件操作模式
- Spring4.0学习笔记-bean之间的关系,作用域以及使用外部属性文件
- GOF设计模式学习--辨析各种模式的要点和相似模式之间的区别
- 各种设计模式的定义(设计模式学习笔记)
- linux关于系统文件安全性的命令
- 沿用高考的学习方法
- linux 文件锁、系统调用和库函数之间的关系
- 字符链接
- hdu 1205 吃糖果
- 构建Wifi指纹定位库~~
- JSP9个内置对象
- ssh需要的所有jar包
- Android学习笔记---文件的操作模式,各种模式之间的关系,以及沿用linux系统的安全性
- php5与mysql5 web 开发技术详解-9 php开发规范
- 完全卸载oracle11g步骤
- ubuntu 切换登陆界面
- 10、王爽《汇编语言》笔记_实验12
- 串操作
- Yii: 如何把JS脚本添加到CGridView数据行的操作按钮中
- Apache禁止目录访问方法介绍
- 如何在CLARiiON存储上彻底删除主机信息