Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android技術基礎 >> 第60章、數據文件存取至儲存卡(從零開始學Android)

第60章、數據文件存取至儲存卡(從零開始學Android)

編輯:Android技術基礎

文件存儲方式是一種較常用的方法,在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="http://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("電子郵件:[email protected]");  
  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="http://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" />

四、運行結果

  \ \

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved