File存對象--android 的File存儲到SD卡();


 

 

 

 

 方法1:android File存對象--File存儲到SD卡();

1、保存對象到本地或SD卡
需要注意的是,要保存的對象(OAuthV1)一定要實現了Serializable接口。
實現了Serializable接口對象才能被序列化。
public void fileSave(OAuthV1 oAuth_1){

//保存在本地
try {
// 通過openFileOutput方法得到一個輸出流,方法參數為創建的文件名(不能有斜杠),操作模式
FileOutputStream fos = this.openFileOutput("oauth_1.out",Context.MODE_WORLD_READABLE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(oAuth_1);// 寫入
fos.close(); // 關閉輸出流
//Toast.makeText(WebviewTencentActivity.this, "保存oAuth_1成功",Toast.LENGTH_LONG).show();

} catch (FileNotFoundException e) {
e.printStackTrace();
//Toast.makeText(WebviewTencentActivity.this, "出現異常1",Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
//Toast.makeText(WebviewTencentActivity.this, "出現異常2",Toast.LENGTH_LONG).show();
}

//保存在sd卡
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

File sdCardDir = Environment.getExternalStorageDirectory();//獲取SDCard目錄
File sdFile = new File(sdCardDir, "oauth_1.out");
try {
FileOutputStream fos = new FileOutputStream(sdFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(oAuth_1);// 寫入
fos.close(); // 關閉輸出流
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//Toast.makeText(WebviewTencentActivity.this, "成功保存到sd卡", Toast.LENGTH_LONG).show();

}
}


2、從本地或SD卡中取出對象

(從本地取得保存的對象)
public OAuthV1 readOAuth1() {
OAuthV1 oAuth_1 = null;
//String filename = "oauth_file.cfg";
try {
FileInputStream fis=this.openFileInput("oauth_1.out"); //獲得輸入流
ObjectInputStream ois = new ObjectInputStream(fis);
oAuth_1 = (OAuthV1)ois.readObject();

//tv.setText(per.toString()); //設置文本控件顯示內容
// Toast.makeText(ShareTencentActivity.this,"讀取成功",Toast.LENGTH_LONG).show();
} catch (StreamCorruptedException e) {

e.printStackTrace();
} catch (OptionalDataException e) {

e.printStackTrace();
} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {

e.printStackTrace();
}
return oAuth_1;

 

(2)從SD卡中取得保存的對象

對SD卡操作別忘了加權限
<!-- 在SDCard中創建與刪除文件的權限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard寫入數據的權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

public OAuthV1 readOAuth2() {
OAuthV1 oAuth_1 = null;
File sdCardDir = Environment.getExternalStorageDirectory();//獲取SDCard目錄
File sdFile = new File(sdCardDir, "oauth_1.out");

try {
FileInputStream fis=new FileInputStream(sdFile); //獲得輸入流
ObjectInputStream ois = new ObjectInputStream(fis);
oAuth_1 = (OAuthV1)ois.readObject();
ois.close();
} catch (StreamCorruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM