Transcript 7_檔案

Android檔案處理
建國科技大學 資管系
饒瑞佶
2010/10
MVC Model
• Model-View-Controller
• Model:儲存內容
使用者
• View:顯示介面
• Controller:控制程式操作
View
要求動作
顯示內容
Controller
提供資料
查詢資料
Model
Android檔案與資料庫處理
• 檔案
–從檔案讀出資料
–將資料寫入檔案
檔案處理-寫入
使用手機
檔案處理-寫入
• 將資料寫入檔案
• 使用FileWriter與BufferedWriter物件
FileWriter fw=new FileWriter("/sdcard/output.txt",false);
檔案位置
• 檔案位置:sd卡
• 需要
import java.io.BufferedWriter;
import java.io.FileWriter;
是否為append
使用adb shell觀看sd卡
Step1:執行adb shell
使用adb shell觀看sd卡
Step2:執行ls指令
若執行的手機內的內容,看到的是$提示符號
使用adb shell觀看sd卡
Step3:執行cd sdcard指令
注意!如果手機有被連線當成外接磁碟,需要先斷線
使用adb shell觀看sd卡
Step3:執行ls指令
沒有看到output.txt這個檔案
檔案處理-寫入動作之程式碼
檔案物件必須引用的class
寫入檔案程式
檔案處理-寫入動作之結果
透過手機執行
使用adb shell觀看sd卡
奇怪!怎麼還是沒有???
加入權限
Android 對於 SD Card 的存取權限, 必須有
android.permission.WRITE_EXTERNAL_STORAGE 權限
使用adb shell觀看sd卡
加了權限後就出現了output.txt
使用adb shell觀看sd卡
Step4:執行cat output.txt指令
觀看output.txt內容
檔案處理-寫入
使用模擬器
建立模擬sdcard的映像檔
• 先建立 SD 卡的映像檔 (只需做一次)
mksdcard sizeM [path\]name.img
如: mksdcard 1024M d:\sdcard.img
在模擬器上建立模擬sdcard
透過Eclipse連結AVD
與映像檔
透過Eclipse-Emulator 掛載 SD 卡
透過Eclipse-Emulator 掛載 SD 卡
透過Eclipse-Emulator 掛載 SD 卡
• android list avd (需將 <Android_Home> / tools 加
入到 Path 環境變數中)可以查看可以使用的AVD
Emulator 掛載 SD 卡後之變化
• Open Run Dialog
在模擬器上建立模擬sdcard
-sdcard d:\sdcard.img
手動產生AVD與連結
映像檔
查看可用的targets
• android list
查看可以使用的targets
現有的AVD
建立新的AVD
• android create avd -n avdName -t avdID
如: android create avd -n my_avd2 -t 8
Emulator 掛載 SD 卡
• emulator –avd AVD名稱 -sdcard [path\]name.img
如: emulator –avd my_avd2 -sdcard d:\sdcard.img
啟動AVD
啟動my_avd2
執行與驗證
瀏覽檔案-啟動AVD
瀏覽模擬器內檔案-使用adb shell
若執行的模擬器內的內容,看到的是#提示符號
目前模擬器內sdcard是空的
檔案處理-寫入動作之結果
透過AVD執行
瀏覽模擬器內檔案-使用adb shell
Sdcard內出現output.txt與內容
也可以使用ddms瀏覽檔案
也可以使用ddms瀏覽檔案
改寫程式-自動偵測sdcard位置
瀏覽模擬器內檔案-使用adb shell
Sdcard內出現
Tom目錄
與
output.txt內容
檔案處理-讀取
檔案處理-讀取
• 將資料從檔案讀取出來
• 使用FileReader與BufferedReader物件
FileReader fr=new FileReader("/sdcard/output.txt”);
檔案位置
• 檔案位置:sd卡
• 需要
import java.io.BufferedReader;
import java.io.FileReader;
檔案處理-讀取動作之程式碼
讀取檔案物件必須引用的class
顯示程式需要的class
讀取檔案程式
顯示程式
小練習
• 請在畫面上加入一個小按鈕,按下按鈕後
建立檔案myfile.txt,並寫入文字”我成功了!”
• 最後將myfile.txt內文字用Toast顯示出來
在main.xml中加入按鈕
加入對應處理時需要
使用drioddraw產生
加入按鈕對應處理事件
完整程式(I)
必要的class
將文字寫入myfile.txt
完整程式 (II)
將文字從myfile.txt讀出
加入按鈕對應處理事件