频道栏目
首页 > 程序开发 > 移动开发 > Android教程 > Android基础教程 > 正文
第60章、数据文件存取至储存卡(从零开始学Android)
2016-02-02 10:44:31           
收藏   我要投稿
文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样。

 

一、设计界面

  1、布局文件

  打开activity_main.xml文件。

  输入以下代码:

[html] view plain copy

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout   
  3.     xmlns:android="https://schemas.android.com/apk/res/android"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <Button  
  9.         android:id="@+id/save"  
  10.         android:layout_width="wrap_content"  
  11.         android:layout_height="wrap_content"  
  12.         android:text="保存数据(File)" />  
  13.       
  14.     <Button  
  15.         android:id="@+id/read"  
  16.         android:layout_width="wrap_content"  
  17.         android:layout_height="wrap_content"  
  18.         android:text="读取数据(File)" />  
  19.   
  20. </LinearLayout>  


二、程序文件

  打开“src/com.genwoxue.file/MainActivity.java”文件。

  然后输入以下代码:

[java] view plain copy

 

  1. package com.genwoxue.file;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileOutputStream;  
  6. import java.io.FileNotFoundException;  
  7. import java.io.PrintStream;  
  8. import java.util.Scanner;  
  9.   
  10. import android.os.Bundle;  
  11. import android.os.Environment;  
  12. import android.view.View;  
  13. import android.view.View.OnClickListener;  
  14. import android.widget.Button;  
  15. import android.widget.Toast;  
  16. import android.app.Activity;  
  17.   
  18. public class MainActivity extends Activity {  
  19.   
  20.     private Button btnSave=null;  
  21.     private Button btnRead=null;  
  22.     private File file=null;  
  23.       
  24.     private static final String FILENAME="data.txt";  
  25.       
  26.     @Override  
  27.     protected void onCreate(Bundle savedInstanceState) {  
  28.         super.onCreate(savedInstanceState);  
  29.         setContentView(R.layout.activity_main);  
  30.         btnSave=(Button)super.findViewById(R.id.save);  
  31.         btnRead=(Button)super.findViewById(R.id.read);  
  32.           
  33.         btnSave.setOnClickListener(new OnClickListener(){  
  34.             public void onClick(View v)  
  35.             {    
  36.   
  37.                 PrintStream ps=null;  
  38.                   
  39.                 //判断外部存储卡是否存在  
  40.                 if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
  41.                     Toast.makeText(getApplicationContext(), "读取失败,SD存储卡不存在!", Toast.LENGTH_LONG).show();    
  42.                     return;  
  43.                 }  
  44.                   
  45.                 //初始化File  
  46.                 String path=Environment.getExternalStorageDirectory().toString()  
  47.                         +File.separator  
  48.                         +"genwoxue"  
  49.                         +File.separator  
  50.                         +FILENAME;  
  51.                 file=new File(path);  
  52.                   
  53.                 //如果当前文件的父文件夹不存在,则创建genwoxue文件夹  
  54.                 if(!file.getParentFile().exists())  
  55.                     file.getParentFile().mkdirs();  
  56.   
  57.                 //写文件  
  58.                 try {  
  59.                     ps = new PrintStream(new FileOutputStream(file));  
  60.                     ps.println("跟我学网址:www.genwoxue.com");  
  61.                     ps.println("电子邮件:hello@genwoxue.com");  
  62.                 } catch (FileNotFoundException e) {  
  63.                     e.printStackTrace();  
  64.                 }finally{  
  65.                     ps.close();  
  66.                 }  
  67.             }  
  68.         });  
  69.           
  70.         btnRead.setOnClickListener(new OnClickListener(){  
  71.             public void onClick(View v)  
  72.             {  
  73.                 StringBuffer info=new StringBuffer();  
  74.   
  75.                 //判断外部存储卡是否存在  
  76.                 if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
  77.                     Toast.makeText(getApplicationContext(), "读取失败,SD存储卡不存在!", Toast.LENGTH_LONG).show();    
  78.                     return;  
  79.                 }  
  80.                   
  81.                 //初始化File  
  82.                 String path=Environment.getExternalStorageDirectory().toString()  
  83.                         +File.separator  
  84.                         +"genwoxue"  
  85.                         +File.separator  
  86.                         +FILENAME;  
  87.                 file=new File(path);  
  88.                   
  89.                 if(!file.exists()){  
  90.                     Toast.makeText(getApplicationContext(), "文件不存在!", Toast.LENGTH_LONG).show();    
  91.                     return;  
  92.                 }  
  93.                   
  94.                 //读取文件内容  
  95.                 Scanner scan=null;  
  96.                 try {  
  97.                     scan=new Scanner(new FileInputStream(file));  
  98.                     while(scan.hasNext()){  
  99.                         info.append(scan.next()).append("☆☆☆\n");  
  100.                 }  
  101.                     Toast.makeText(getApplicationContext(), info.toString(), Toast.LENGTH_LONG).show();  
  102.                 } catch (FileNotFoundException e) {  
  103.                     e.printStackTrace();  
  104.                 }finally{  
  105.                     scan.close();  
  106.                 }  
  107.             }  
  108.         });  
  109.     }  
  110. }  


三、配置文件

  打开“AndroidManifest.xml”文件。

  然后输入以下代码:

[html] view plain copy

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="https://schemas.android.com/apk/res/android"  
  3.     package="com.genwoxue.file"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="8"  
  9.         android:targetSdkVersion="15" />  
  10.     <span style="color:#ff0000;"><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>  
  11.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  12. </span>  
  13.     <application  
  14.         android:allowBackup="true"  
  15.         android:icon="@drawable/ic_launcher"  
  16.         android:label="@string/app_name"  
  17.         android:theme="@style/AppTheme" >  
  18.         <activity  
  19.             android:name="com.genwoxue.file.MainActivity"  
  20.             android:label="@string/app_name" >  
  21.             <intent-filter>  
  22.                 <action android:name="android.intent.action.MAIN" />  
  23.                 <category android:name="android.intent.category.LAUNCHER" />  
  24.             </intent-filter>  
  25.         </activity>  
  26.     </application>  
  27.   
  28. </manifest>  

  注意:由于要进行读写外部存储卡操作,故而需要在AndroidManifest.xml文件中添加两项权限:

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

四、运行结果

  \ \

点击复制链接 与好友分享!回本站首页
相关TAG标签 文件 数据
上一篇:第59章、SharedPreferences存储(从零开始学Android)
下一篇:第61章、资源文件之存取操作(从零开始学Android)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站