android文件操作

一、讀文件操作

Context.openFileInput(Stringname)打開一個與應用程序聯繫的私有文件輸入流。

當文件不存在時拋出FileNotFoundException

FileInputStreamin = this.openFileInput("test.txt");//打開文件"text.txt"

In.close();//關閉輸入流

 

二、寫文件操作

Context.openFileOutput(Stringname,int mode)開啓一個與應用程序聯繫的私有文件輸出流

當文件不存在時該文件將被創建,文件輸出流可以在添加模式中打開,這意味着新的數據將被添加到文件的末尾。

FileOutputStream out =this.openFileOutput("test2.txt,MODE_APPEND");

//打開文件"test2.txt"進行寫操作,使用MODE_APPEND再添加模式中打開文件

out.close();//關閉輸出流

eg:publicclass FileActivity extends Activity{

@Override

Public void onCreate(Bundle savedInstanceState){

    FileOutputStream outStream= this.openFileOutput("lxt008.txt",Context.MODE_PRIVATE);

   outStream.write("lxt008".getBytes());

    outStream.close();

}

}

注意:

openFileOutput()方法的第一參數用於指定文件名,不能包含路徑分隔符“/”,如果文件不存在,Android會自動創建他,創建的文件保存在/data/data/<packagename>/files目錄,

如:/data/data/com.lxt008/files/lxt008.txt,通過點擊Eclipse菜單“Window”-“ShowView”-“Other”,在對話窗口 中展開android文件夾,選擇下面的File Explorer視圖,然後再File Explorer 視圖中展開/data/data/<packagename>/files目錄就可以看到該文件夾。

 

 

三、讀取靜態文件

要打開打包在程序中的靜態文件,使用Resource.openRawResource(R.raw.mydatafile);

該文件必須放在文件夾res/raw/中

InputStreamin =this.getResources().openRawResource(R.raw.my);

…//獲得Context資源

In.close();//關閉輸入流

eg:如果想打開/data/data/<packagename>/file目錄應用私有的文件,可以使用Activity提供openFileInput()方法。

FileInputStreaminStream = this.getContext().openFileInput("lxt008.txt");

Log.i("FileTest",readInstream(inStream));

或者直接使用文件的絕度路徑:

File file =new File("/data/data/com.lxt008/files/lxt008.txt");

FileInputStreaminStream = new FileInputStream(file);

Log.i("FileTest",readInStream(inStream));

Activity還提供了getCacheDir()和getFilesDir()方法:

getCacheDir()方法用於獲取/data/data/<package name>/cache目錄

getFilesDir()方法用於獲取/data/data/<package name>/files目錄

 

以上的操作是對於安卓手機自帶內存空間上的。對於存儲空間不大的手機,你需要將大文件存放於手機內存卡上面:

應用程序訪問SDCard時,你需要申請訪問權限:

<!--在SDCard中創建與刪除的文件權限-->

<uses-premissionandroid:name="android.prremission.MOUNT_UNMOUNT_FILESYSTEMS">

<!--往SDCard寫如數據權限-->

<uses-premissionandroid:name="android.premission.WRITE_EXTERNAL_STORAGE">

要往SDCard存放文件,程序必須先判斷手機是否裝有SDCard,並且可以進行讀寫。

If(Environment.getExternalStorageState().equals(Environment.MEDLA_MOUNTED)){

File sdCardDir = Environment.getExternalStorageDirectory();//獲取SDCard目錄

File savaFile = new File(sdCardDir,"lxt008.txt");

FileOutputStream outStream = new FileOutputStream(savaFile);

outStream.write("lxt008".getBytes());

outStream.close();

}

獲取SdCard目錄也可以這樣:

File sdCardDir = new File("/sdcard");//獲取SDCard目錄

File savaFile = newFile(sdCardDir,"lxt008.txt");

上面兩句可以合成一句:

FilesavaFile = new File("/sdcard/lxt008.txt");

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