android File存储对象 File存储到SD卡

android File存储对象

1、保存对象到本地或SD卡

[java]  view plain copy
  1.               public void fileSave(OAuthV1 oAuth_1){  
  2.     //保存在本地  
  3.     try {  
  4.         // 通过openFileOutput方法得到一个输出流,方法参数为创建的文件名(不能有斜杠),操作模式  
  5.         FileOutputStream fos = this.openFileOutput("oauth_1.out",Context.MODE_WORLD_READABLE);  
  6.         ObjectOutputStream oos = new ObjectOutputStream(fos);  
  7.         oos.writeObject(oAuth_1);// 写入  
  8.         fos.close(); // 关闭输出流  
  9.         //Toast.makeText(WebviewTencentActivity.this, "保存oAuth_1成功",Toast.LENGTH_LONG).show();  
  10.     } catch (FileNotFoundException e) {  
  11.         e.printStackTrace();  
  12.         //Toast.makeText(WebviewTencentActivity.this, "出现异常1",Toast.LENGTH_LONG).show();  
  13.     } catch (IOException e) {  
  14.         e.printStackTrace();  
  15.         //Toast.makeText(WebviewTencentActivity.this, "出现异常2",Toast.LENGTH_LONG).show();  
  16.     }  
  17.       
  18.     //保存在sd卡  
  19.     if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
  20.           
  21.            File sdCardDir = Environment.getExternalStorageDirectory();//获取SDCard目录  
  22.            File sdFile = new File(sdCardDir, "oauth_1.out");  
  23.              
  24.       
  25.         try {  
  26.             FileOutputStream fos = new FileOutputStream(sdFile);  
  27.             ObjectOutputStream oos = new ObjectOutputStream(fos);  
  28.             oos.writeObject(oAuth_1);// 写入  
  29.             fos.close(); // 关闭输出流  
  30.         } catch (FileNotFoundException e) {  
  31.             // TODO Auto-generated catch block  
  32.             e.printStackTrace();  
  33.         } catch (IOException e) {  
  34.             // TODO Auto-generated catch block  
  35.             e.printStackTrace();  
  36.         }  
  37.            //Toast.makeText(WebviewTencentActivity.this, "成功保存到sd卡", Toast.LENGTH_LONG).show();  
  38.              
  39.     }  
  40. }  
需要注意的是,要保存的对象(OAuthV1)一定要实现了Serializable接口。

实现了Serializable接口对象才能被序列化。


2、从本地或SD卡中取出对象

(从本地取得保存的对象)

[java]  view plain copy
  1.               public OAuthV1 readOAuth1() {  
  2. OAuthV1 oAuth_1 = null;  
  3. //String filename = "oauth_file.cfg";  
  4.         try {  
  5.             FileInputStream fis=this.openFileInput("oauth_1.out");   //获得输入流  
  6.             ObjectInputStream ois = new ObjectInputStream(fis);  
  7.             oAuth_1 = (OAuthV1)ois.readObject();  
  8.               
  9.             //tv.setText(per.toString());                           //设置文本控件显示内容  
  10.            // Toast.makeText(ShareTencentActivity.this,"读取成功",Toast.LENGTH_LONG).show();//弹出Toast消息  
  11.         } catch (StreamCorruptedException e) {  
  12.             //Toast.makeText(ShareTencentActivity.this,"出现异常3",Toast.LENGTH_LONG).show();//弹出Toast消息  
  13.             e.printStackTrace();  
  14.         } catch (OptionalDataException e) {  
  15.             //Toast.makeText(ShareTencentActivity.this,"出现异常4",Toast.LENGTH_LONG).show();//弹出Toast消息  
  16.             e.printStackTrace();  
  17.         } catch (FileNotFoundException e) {  
  18.             //Toast.makeText(ShareTencentActivity.this,"出现异常5",Toast.LENGTH_LONG).show();//弹出Toast消息  
  19.             e.printStackTrace();  
  20.         } catch (IOException e) {  
  21.             e.printStackTrace();  
  22.         } catch (ClassNotFoundException e) {  
  23.             //Toast.makeText(ShareTencentActivity.this,"出现异常6",Toast.LENGTH_LONG).show();//弹出Toast消息  
  24.             e.printStackTrace();  
  25.         }  
  26. return oAuth_1;  

(2)从SD卡中取得保存的对象

[java]  view plain copy
  1. public OAuthV1 readOAuth2() {  
  2.     OAuthV1 oAuth_1 = null;  
  3.     File sdCardDir = Environment.getExternalStorageDirectory();//获取SDCard目录  
  4.     File sdFile = new File(sdCardDir, "oauth_1.out");  
  5.       
  6.     try {  
  7.         FileInputStream fis=new FileInputStream(sdFile);   //获得输入流  
  8.         ObjectInputStream ois = new ObjectInputStream(fis);  
  9.         oAuth_1 = (OAuthV1)ois.readObject();  
  10.         ois.close();  
  11.     } catch (StreamCorruptedException e) {  
  12.         // TODO Auto-generated catch block  
  13.         e.printStackTrace();  
  14.     } catch (OptionalDataException e) {  
  15.         // TODO Auto-generated catch block  
  16.         e.printStackTrace();  
  17.     } catch (FileNotFoundException e) {  
  18.         // TODO Auto-generated catch block  
  19.         e.printStackTrace();  
  20.     } catch (IOException e) {  
  21.         // TODO Auto-generated catch block  
  22.         e.printStackTrace();  
  23.     } catch (ClassNotFoundException e) {  
  24.         // TODO Auto-generated catch block  
  25.         e.printStackTrace();  
  26.     }  
  27.           }  
对SD卡操作别忘了加权限

[html]  view plain copy
  1.         <!-- 在SDCard中创建与删除文件的权限 -->  
  2. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
  3. <!-- 往SDCard写入数据的权限 -->  
  4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值