SharedPreferences的四种操作模式:
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
1 package com.example.readfile; 2 3 import java.io.FileNotFoundException; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 import android.app.Activity; 8 import android.content.Context; 9 import android.os.Bundle; 10 import android.view.Menu; 11 import android.view.MenuItem; 12 import android.view.View; 13 14 public class MainActivity extends Activity { 15 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20 } 21 22 private void creatFile(){ 23 try{ 24 FileOutputStream fos = this.openFileOutput("woodrow.txt",Context.MODE_PRIVATE); 25 fos.write("牵黄擎苍".getBytes()); 26 fos.close(); 27 }catch(FileNotFoundException e){ 28 e.printStackTrace(); 29 }catch(IOException e){ 30 e.printStackTrace(); 31 } 32 } 33 34 public void private_mode(View v){ 35 FileOutputStream fos; 36 try { 37 fos = this.openFileOutput("woodrow1.txt", Context.MODE_PRIVATE); 38 fos.write("牵黄擎苍".getBytes()); 39 fos.close(); 40 } catch (FileNotFoundException e) { 41 e.printStackTrace(); 42 } catch (IOException e) { 43 e.printStackTrace(); 44 } 45 46 } 47 48 public void world_readable_mode(View v){ 49 try { 50 FileOutputStream outStream = this.openFileOutput("woodrow2.txt", Context.MODE_WORLD_READABLE); 51 outStream.write("牵黄擎苍".getBytes()); 52 outStream.close(); 53 } catch (FileNotFoundException e) { 54 // TODO Auto-generated catch block 55 e.printStackTrace(); 56 } catch (IOException e) { 57 // TODO Auto-generated catch block 58 e.printStackTrace(); 59 } 60 61 } 62 63 public void world_writeable_mode(View v){ 64 try { 65 FileOutputStream outStream = this.openFileOutput("woodrow3.txt", Context.MODE_WORLD_WRITEABLE); 66 outStream.write("牵黄擎苍".getBytes()); 67 outStream.close(); 68 } catch (FileNotFoundException e) { 69 // TODO Auto-generated catch block 70 e.printStackTrace(); 71 } catch (IOException e) { 72 // TODO Auto-generated catch block 73 e.printStackTrace(); 74 } 75 } 76 public void world_writeandread_mode(View v){ 77 try { 78 FileOutputStream outStream = this.openFileOutput("woodrow4.txt", 79 Context.MODE_WORLD_WRITEABLE|Context.MODE_WORLD_READABLE); 80 outStream.write("王道论坛".getBytes()); 81 outStream.close(); 82 } catch (FileNotFoundException e) { 83 // TODO Auto-generated catch block 84 e.printStackTrace(); 85 } catch (IOException e) { 86 // TODO Auto-generated catch block 87 e.printStackTrace(); 88 } 89 } 90 }
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context="com.example.readfile.MainActivity" 10 android:orientation="vertical"> 11 12 <TextView 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:text="@string/hello_world" /> 16 17 <Button 18 android:onClick="private_mode" 19 android:layout_width="wrap_content" 20 android:layout_height="wrap_content" 21 android:text="private_mode"/> 22 <Button 23 android:onClick="world_readable_mode" 24 android:layout_width="wrap_content" 25 android:layout_height="wrap_content" 26 android:text="world_readable_mode"/> 27 <Button 28 android:onClick="world_writeable_mode" 29 android:layout_width="wrap_content" 30 android:layout_height="wrap_content" 31 android:text="world_writeable_mode"/> 32 <Button 33 android:onClick="world_writeandread_mode" 34 android:layout_width="wrap_content" 35 android:layout_height="wrap_content" 36 android:text="world_writeandread_mode"/> 37 38 </LinearLayout>
效果图:
第一位表示文件类型。d是目录文件,l是链接文件,-是普通文件,p是管道
第2-4位表示这个文件的属主拥有的权限,r是读,w是写,x是执行。
第5-7位表示和这个文件属主所在同一个组的用户所具有的权限。
第8-10位表示其他用户所具有的权限。
如:
drwxr-xr-x user1 group1 filename
表示filename是个目录,user1拥有读写执行的权限,和user1所在同一个group1组里的用户拥有只读和执行权限,剩下其他用户拥有只读和执行权限。