Android文件存儲數據

文件操作所需要的權限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

 

/**
 * AndroidManifest添加寫入數據的權限
 * * Andriod 23以後,就算是添加權限也需要在使用時動態請求,否則文件操作會失敗
 * * 外部存儲:
 * * 保存外部SD卡中,使用之前確定SD卡可用
 * * 確保當前SD卡可用
 * * 獲取SD卡的根路徑
 * * 創建文件對象,由於不同手機SDcard目錄不同,
 * * 所以我們通過Environment.getExternalStorageDirectory()獲得路徑。
 */
public class FileoperationActivity extends AppCompatActivity {
    //一級文件夾路徑  
    public final static String Folder_NAME = Environment.getExternalStorageDirectory() + File.separator + "HelloTest";
    //二級文件夾路徑  
    public final static String Second_PATH = Folder_NAME + File.separator + "SecondFolder" + File.separator;
    //文件路徑  
    public static final String FILE_NAME = Folder_NAME + File.separator + "HelloTest.txt";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fileoperation);
        FolderCreate();
        FileCreate();
        FileWrite();
        FileRead();
    }

    /**
     * 文件夾創建
     */
    private void FolderCreate() {
        //mkdirs()可以建立多級文件夾, mkdir()只會建立一級的文件夾  
        File dirFirstFolder = new File(Second_PATH);
        if (!dirFirstFolder.exists()) {
            dirFirstFolder.mkdirs();
        }
    }

    /**
     * 文件創建
     */
    private void FileCreate() {
        File file = new File(FILE_NAME);
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 文件的寫入
     */
    private void FileWrite() {
        File file = new File(FILE_NAME);
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            FileOutputStream fos = new FileOutputStream(file);
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
            bw.write(System.currentTimeMillis() + "你好啊");
            bw.flush();
            bw.close();
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 文件的讀取
     */
    private void FileRead() {
        try {
            File file = new File(FILE_NAME);
            BufferedReader br = new BufferedReader(new FileReader(file));
            String readline = "";
            StringBuffer sb = new StringBuffer();
            while ((readline = br.readLine()) != null) {
                System.out.println("readline:" + readline);
                sb.append(readline);
            }
            br.close();
            System.out.println("讀取成功:" + sb.toString());
            Toast.makeText(this, sb, Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
} 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章