Android保存數據方式(一)———File

在Android中保存文件有兩種:自帶存儲空間、SDCard。

 
且有4種文件操作mode:
Context.MODE_PRIVATE:爲默認操作模式,代表該文件是私有數據,只能被本文件使用,本模式下,寫入的數據會覆蓋原文件
Context.MODE_APPEND:存在就往文件中追加內容
MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取
MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入
openFileOutput("itcast.txt",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);

自帶存儲空間:

(寫)
FileOutputStream outStream = context.openFileOutput(filename,mode);//得到文件輸出流對象,上下文對象的openFileOutput返回文件輸出流對象
outStream.write(content.getBytes());//寫進文件
outstream.close();//關掉輸出流
默認保存在包底下的files文件夾下
(讀)
FileInputStream inStream = context.openFileInput(filename);//得到文件輸入流對象
ByteArrayOutputStream outStream = new ByteArrayOutputStream();//暫時向內存中寫入數據
byte[] buffer = new byte[1024];//輸入流讀到字節數組中,數組滿了後inStream.read(buffer)返回(爲int型,流讀完了就是-1,沒讀完就是已經從流中讀了多少數據)
int len = 0;//read到的位置
while((len = inStream.read(buffer)) != -1){
outStream.write(buffer,0,len);//字符數組0-len寫入內存
}
byte[] data = outStream.toByteArray();從內存中得到所有數據
return new String(data);//重寫String方法。

SDCard:(路徑爲/mnt/sdcard)

(寫)
寫入之前要判斷SD卡是否插到手機上是否可以讀寫:
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED){可以寫數據}//存在且可讀寫
or(SD卡不存在或者寫保護)
File file = new File(new File("/mnt/sdcard",filename);//最好不用絕對路徑:Environment.getExternalStorageDirectory()
FileOutputStream outStream = new FileOutStream(file);
outStream.write(content.getBytes());
outStream.close();
另外還要寫入權限:
<!-在SDCard中創建與刪除文件權限-->
<uses-permission android:name="android.permission.MOUNT_UNMOUT_FILESYSTEMS"/>
<!-往SDCard中寫入數據權限-->

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

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