在android中一般有兩種方式:
第一種是寫入手機內存的文件,這種方式,文件的存取路徑都是在應用包下的 files 文件夾下,其路徑是固定的,並不受程序員控制的,
FileOutputStream fos = context.openFileOutput(fileName, mod);
FileInputStream fis = context.openFileInput(fileName);
這裏的fileName只能是文件名,不能帶路徑。mod的值有以下幾種:
Context.MODE_PRIVATE:爲默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件。
MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取;MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。
如果希望文件被其他應用讀和寫,可以傳入:
openFileOutput("output.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
第二種是對sdcard的操作
對sdcard的操作,主要的注意點是在AndroidManifest.xml中註冊權限
<!-- 在sdcard中創建與刪除文件的權限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 向sdcard中寫入數據的權限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
然後Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);通過這個方法到判斷sdcard是否能用,
File file = Environment.getExternalStorageDirectory(); FileOutputStream fos = new FileOutputStream(file); fos.write(content.getBytes()); fos.close();
這樣即可以對sdcard進行操作
隨便這裏記錄下,在java中,得到隱藏的文件擴展名的方法是跟得到文件名的方法是一樣的,也就是說跟後綴隱不隱藏沒關係,都可以得到。