5.1 在SD卡上创建各种权限的文件
来源:互联网 发布:全国计算机二级vb题型 编辑:程序博客网 时间:2024/06/06 01:32
1.首先获取文件输出流
直接调用方法public FileOutputStream openFileOutput (String name, int mode)
参数:
name:要输出文件的名称,自己定义,要符合文件命名规则
mode:文件读取权限
2.文件读取权限详解
Context. MODE_PRIVATE:-rw-rw—- 创建应用私有的文件
Context. MODE_APPEND:-rw-rw—- 权限等同于private
Context. MODE_WORLD_READABLE:-rw-rw-r– 创建全局可读文件
Context. MODE_WORLD_WRITEABLE:-rw-rw–w- 创建全局可写文件
示例代码:5种权限方式进行文件创建
package com.llj.privatefilerwx;import ***public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /* * 创建一个 私有的文件 * * 每个应用程序 都一个私有的文件夹, /data/data/com.itheima.filemode * * * 私有的文件 ,只有 当前的应用 自己可以去访问, 其他的应用没有 办法 去访问 -- 其他的应用既不 可以 读,也不可以写 */ public void getPrivateFile(View v) { try { File file = new File(this.getFilesDir(), "private.txt"); OutputStream out = new FileOutputStream(file); out.write("private".getBytes()); out.close(); Toast.makeText(this, "写入私有文件成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "写入私有文件失败 ", Toast.LENGTH_SHORT).show(); } } // 谷歌不推荐咱们这样做 : 引入了新的组件 --- contentProvider // 创建一个只读的文件 : 其他的应用可以去读,但是不能去写 public void getReadOnlyFile(View v) { try { FileOutputStream out = openFileOutput("readonly.txt", Context.MODE_WORLD_READABLE); out.write("readonly".getBytes()); out.close(); Toast.makeText(this, "写入只读文件成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "写入只读文件失败 ", Toast.LENGTH_SHORT).show(); } } //写入 只可 写 文件 public void getWriteOnlyFile(View v) { try { FileOutputStream out = openFileOutput("writeonly.txt", Context.MODE_WORLD_WRITEABLE); out.write("writeonly".getBytes()); out.close(); Toast.makeText(this, "写入只可写文件成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "写入只可写文件失败 ", Toast.LENGTH_SHORT).show(); } } // 其他应用 可以读 也可以写的文件 public void getPublicFile(View v) { try { FileOutputStream out = openFileOutput("public.txt", Context.MODE_WORLD_WRITEABLE + Context.MODE_WORLD_READABLE); out.write("public".getBytes()); out.close(); Toast.makeText(this, "写入可读可写 成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "写入可读可写 失败 ", Toast.LENGTH_SHORT).show(); } }}
接下来,我们写一个Layout文件画一个简单界面,画4个button,分别绑定对应的触发事件,如在button标签中直接绑定触发事件android:onClick="getWriteOnlyFile"
运行的结果如下:
解释一下文件对应关系:
private.txt文件(-rw------
)是由bt1(创建一个私有的文件)创建的,调用的方法是:
最普通的创建文件的方法
File file = new File(this.getFilesDir(), "private.txt"); OutputStream out = new FileOutputStream(file); out.write("private".getBytes());
private2.txt文件(-rw------
)是由bt2(创建一个私有的文件方式2)创建的,文件权限是:Context.MODE_PRIVATE
readonly.txt文件(-rw-rw-r--
)是由bt3(创建一个只读的文件)创建的,文件权限是:Context.MODE_WORLD_READABLE
writeonly.txt文件(-rw-rw--w-
)是由bt4(创建一个只可写的文件)创建的,文件权限是:Context.MODE_WORLD_WRITEABLE
public.txt文件(-rw-rw-rw-
)是由bt5(创建一个可读也可写的文件)创建的,文件权限是: Context.MODE_WORLD_WRITEABLE + Context.MODE_WORLD_READABLE
遗憾的告诉你,这种方法因为存在安全漏洞,已经过时了
谷歌推荐使用 ContentProvider / BroadcastReceiver/ android.app.Service 来替代这种方法
- 5.1 在SD卡上创建各种权限的文件
- 在模拟器上创建虚拟的SD卡以及文件拷贝到SD卡
- Android中使用照相机权限、在SD卡创建和删除文件权限、在SD卡中写入数据权限
- 如何在sd卡上创建文件夹
- 在Sd卡上创建Sqlite数据库
- SD卡文件权限
- SD卡文件权限
- android-在sd卡创建一个文件
- 在SD卡中创建文件
- 如何在android模拟器上创建sd卡并向里面存入文件
- 【译】如何在 Android 5.0 上获取 SD卡 的读写权限
- 关于在android手机的sd卡上创建目录遇到的相关问题
- 在手机的sd卡上创建一个以当天日期为命名的文件夹
- 在android studio的虚拟机的sd卡上创建文件夹
- Android 中在SD卡上创建一个文件夹
- android在虚拟机SD卡上创建文件夹
- 安卓程序:在SD卡上创建一个…
- 在SD卡创建文件夹、写入文件、读取文件
- Spring 声明式事务管理
- XSS存储型攻击的末日
- 单向加密算法MD5和SHA
- Mybatis自动生成代码
- 最小-最大搜索
- 5.1 在SD卡上创建各种权限的文件
- Android SDK PDK NDK详解
- mysql密码为空时,c#如何运行一条cmd命令导入sql文件到数据库并获得mysql的输出
- Swift - swift3.0中代理方法的使用
- navicat编辑记录
- SDUTACM 3-7 类的友元函数的应用
- SAS︱操作语句(if、do、select、retain、array)、宏语言、统计量、运算符号
- Protocol Buffer
- 宏和函数的区别以及C语言的编译链接过程