android第十步文件操作模式
Context.MODE_PRIVATE私有操作模式:创建出来的文件只能被本应用访问,其他应用无法访问该文件,另外采用私有模式创建的文件,写入文件中的内容会覆盖源文件的内容
Context.MODE_APPEND追加操作模式:只能被本应用访问,追加不覆盖内容
Context.MODE_WORLD_READBLE:可是被其他应用读取,追加不覆盖
Context.MODE_WORLD_WRITEABLE:可被其他程序文件写入数据覆盖,不可以被其他程序读取,如果想以追加的方式可以
FileOutputStream fs = new FileOutputStream(file,true); 第2个参数为是为追加
其他程序可以写也可以读
FileOutputStream outStream = context.openFileOutput(filenametext,Context.MODE_WORLD_WRITEABLE+Context.MODE_WORLD_READABLE);
public void save(String filenametext, String filecontenttext) throws Exception { //文件名称千万不要带路径 //私有操作模式:创建出来的文件只能被本应用访问,其他应用无法访问该文件, //另外采用私有模式创建的文件,写入文件中的内容会覆盖源文件的内容 FileOutputStream outStream = context.openFileOutput(filenametext,Context.MODE_PRIVATE); outStream.write(filecontenttext.getBytes()); outStream.close(); } //快捷键ctrl+shift+y是小写 +x是大写 public void saveAppend(String filenametext, String filecontenttext) throws Exception { FileOutputStream outStream = context.openFileOutput(filenametext,Context.MODE_APPEND); outStream.write(filecontenttext.getBytes()); outStream.close(); } public void saveReadable(String filenametext, String filecontenttext) throws Exception { FileOutputStream outStream = context.openFileOutput(filenametext,Context.MODE_WORLD_READABLE); outStream.write(filecontenttext.getBytes()); outStream.close(); } public void saveWriteable(String filenametext, String filecontenttext) throws Exception { FileOutputStream outStream = context.openFileOutput(filenametext,Context.MODE_WORLD_WRITEABLE); outStream.write(filecontenttext.getBytes()); outStream.close(); }
其他的测试工程
public class AccessOtherProject extends AndroidTestCase { public void testAccessPrivate() throws Throwable{ String path = "/data/data/com.example.file/files/text.txt"; linux完整路径 File file =new File(path);文件对象 FileInputStream inStream = new FileInputStream(file);放入流 ByteArrayOutputStream array = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while((len = inStream.read(buffer))!=-1) { array.write(buffer,0,len); } byte[] data = array.toByteArray(); array.close(); inStream.close(); String content = new String(data); Log.i("123123123", content); } public void testAccessWriteable() throws Throwable{ String path = "/data/data/com.example.file/files/writeable.txt"; File file =new File(path); FileOutputStream fs = new FileOutputStream(file,true); fs.write("slkjflkd".getBytes()); fs.close(); } }
-rw- 可以被本程序读写 rw同一组的其他应用也可以对他读写 ---其他应用不可以读写
r读 w写 第一个代表自己 第二个代表同组应用 第三个代表其他应用
上下文对象.getFileDir()获取当前应用的/file路径
上下文对象.getCacheDir()获取当前应用的/cache路径 cache 目录保存缓存