一、用Environment
(写)
1、API获取sdcard的路径
File path=Environment.getExternalStorageDirectory();
path=new File(path,"test.txt");
2、用流写入内容
3、获取WRITE_EXTERNAL_STORAGE权限
写入后的文件夹是:/mnt/sdcard/文件名及后缀
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.zzw.writeFile; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 6 import android.app.Activity; 7 import android.os.Bundle; 8 import android.os.Environment; 9 import android.util.Log; 10 11 public class MainActivity extends Activity { 12 13 private static final String TAG = "MainActivity"; 14 15 @Override 16 protected void onCreate(Bundle savedInstanceState) { 17 super.onCreate(savedInstanceState); 18 setContentView(R.layout.activity_main); 19 20 try { 21 writeFileToSDCard("Test", "Test.txt", "hello"); 22 } catch (Exception e) { 23 // TODO Auto-generated catch block 24 e.printStackTrace(); 25 } 26 } 27 28 private boolean writeFileToSDCard(String file_pathName, String fileName, String writeData) throws Exception { 29 // SDCard是否被挂载 30 if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { 31 // 获取根目录 32 File parent_path = Environment.getExternalStorageDirectory(); 33 Log.d(TAG, "parent_path=" + parent_path.getAbsolutePath() + ""); 34 35 // 建立一个子目录专门存放自己的专属文件 36 File file_path = new File(parent_path.getAbsoluteFile(), file_pathName); 37 if (!file_path.exists()) { 38 file_path.mkdir(); 39 } 40 Log.d(TAG, "file_path=" + file_path.getAbsolutePath() + ""); 41 42 // 自己的要存放的文件目录 43 File file = new File(file_path.getAbsoluteFile(), fileName); 44 if (!file.exists()) { 45 file.createNewFile(); 46 Log.d(TAG, "创建文件" + fileName + "成功"); 47 } 48 Log.d(TAG, "文件" + fileName + "存在,原文件将被置换"); 49 Log.d(TAG, "file=" + file.getAbsolutePath() + ""); 50 51 // 写文件 52 FileOutputStream fos = new FileOutputStream(file); 53 54 byte[] buffer = writeData.getBytes(); 55 56 fos.write(buffer, 0, buffer.length); 57 fos.flush(); 58 if (fos != null) { 59 fos.close(); 60 } 61 62 Log.d(TAG, "文件写入成功"); 63 return true; 64 65 } 66 return false; 67 } 68 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
(读)
同样的通过IO操作,注意权限
二、获取shared_prefs目录,读写xml。使用SharedPreferences
写入目录:data/data/包名/shared_prefs/文件名.xml
1、获取SharedPreferences
SharedPreferences shared
=context.getSharedPreferences("xml名字",context.MODE_WORLD_READABLE+context.MODE_WORLD_WRITEABLE);//后者为权限
2、得到Editor(编辑器)
Editor edit=shared.edit();
3、放入数据
(K,V)
edit.putString("hello","world");
//获取我们保存的信息:shared.getString(key, defValue);
4、提交编辑内容
edit.commit();
5、获得权限
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.zzw.testsharedpreferences; 2 3 import android.app.Activity; 4 import android.content.SharedPreferences; 5 import android.content.SharedPreferences.Editor; 6 import android.os.Bundle; 7 import android.util.Log; 8 9 public class MainActivity extends Activity { 10 11 private static final String TAG = "MainActivity"; 12 13 private final String SharedPreferences_Name = "SharedPreferences_Name"; 14 private final String USER_NAME = "user_name"; 15 private final String USER_PASSWORD = "user_password"; 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_main); 21 writeSharedPreferences(); 22 readSharedPreferences(); 23 } 24 25 private void writeSharedPreferences() { 26 SharedPreferences shared = this.getSharedPreferences(SharedPreferences_Name, MODE_PRIVATE); 27 28 Editor edit = shared.edit(); 29 edit.putString(USER_NAME, "张三"); 30 edit.putString(USER_PASSWORD, "123456"); 31 edit.commit(); 32 } 33 34 private void readSharedPreferences() { 35 SharedPreferences shared = this.getSharedPreferences(SharedPreferences_Name, MODE_PRIVATE); 36 37 String name = shared.getString(USER_NAME, "no_name"); 38 String pass_word = shared.getString(USER_PASSWORD, ""); 39 Log.d(TAG, "USER_NAME" + name + ",USER_PASSWORD:" + pass_word); 40 } 41 }