成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android在代碼中如何使用SD卡

移動開發 Android
在Android開發中經常遇到SD卡有關對調試,比如MP3文件、圖片文件等。本文簡單的介紹SD卡的使用。

1 SD 是否可用檢查

有兩種方式,一種是寫一個監聽函數,用來監聽

  1. private final BroadcastReceiver broadcastRec = new BroadcastReceiver() {  
  2. @Override  
  3. public void onReceive(Context context, Intent intent) {  
  4. if (intent.getAction().equals("android.intent.action.MEDIA_MOUNTED")) { //SD 卡已經成功掛載  
  5. //有SD 卡  
  6. } else if (intent.getAction().equals("android.intent.action.MEDIA_REMOVED")  
  7. ||  
  8. intent.getAction().equals("android.intent.action.ACTION_MEDIA_UNMOUNTED")  
  9. ||  
  10. intent.getAction().equals("android.intent.action.ACTION_MEDIA_BAD_REMOVAL")) {//各種未掛載狀態  
  11. //無SD 卡  
  12.    }  
  13.  }  
  14. }; 

另一種在我看來,更簡單一些:

  1. File f = new File("/sdcard/");  
  2. f.exists(); 

2 卡上數據的讀寫

在動手之前,我們先來看看,要對SD 卡進行讀寫操作,Android 為我們準備了哪些類/接口。

接口:FileFilter

:File、FileInputStream、FileOutputStream

下面我們依次對上面出場的做個簡單的介紹吧,同時,也會給出若干代碼來說明各個類如何使用

3 File

文件系統的一個抽象描述類,可以使用相對路徑和絕對路徑,該類提供了若干方法查詢/修改文件信息

  1. File file = new File("/sdcard/a.txt"); 

判斷文件是否存在:

  1. file.exists() 

“文件”是目錄還是文件

  1. file.isDirectory() 

如果文件為目錄,如何列出子目錄呢?

  1. File[ ] filefiles = file.listFiles(); 

對于文件,如果獲得文件的一些信息

  1. file.length(); //文件的長度  
  2. file.canRead(); //文件可以讀嗎  
  3. file.canWrite(); //文件可以寫嗎  
  4. file.delete(); //刪除該文件 

下面,給出一些片斷代碼來展示如何使用File 類

  1. //創建一個新文件  
  2. File file = new File("/sdcard/a.txt");  
  3. if (!file.exists()) {  
  4. try {  
  5. file.createNewFile();  
  6. } catch (IOException e) {  
  7. e.printStackTrace();  
  8. } }  
  9. //創建一個新文件夾  
  10. File file = new File("/sdcard/a/b/c");  
  11. if (!file.exists()) {  
  12. try {  
  13. file.mkdirs();  

請注意,mkdirs()和mkdir()的用法,mkdirs()表示,如果需要,會先創建上層目錄,如上述代碼中,如果SD 卡根目錄不存在目錄a,那么,使用mkdir()會拋出異常。

#p#

4 FileFilter

我們知道,listFiles()會列出當前目錄下的文件,但是,另一個問題出來了,如果當前目錄下文件雜亂無部分,而我們又不想列出所有文件,怎么辦?FileFilter 提供了一個解決方法。我們只需要實現public abstract boolean accept(File pathname)接口就可以了。

  1. FileFilter filter = new FileFilter() {  
  2. public boolean accept (File file) {  
  3. if (file.isFile() && file.getAbsolutePath().toLowerCase().endsWith(".txt")) {  
  4. return true;  
  5. }  
  6. return false;  
  7. }  
  8. };  
  9. File[] filefiles = file.listFiles(filter); 

以上代碼展示了如何只列出當前目錄下的TXT 文件。

5 FileInputStream

我們不僅需要對文件進行操作,還需要對文件的內容進行操作,這時候,FileInputStream 就登場了

FileInputStream 繼承自InputStream,但是FileInputStream 使用了緩沖,以提高頻繁讀入數據時的性能。

使用FileInputStream 也很簡單

  1. FileInputStream fis = new FileInputStream("/sdcard/a.txt");  
  2. byte[ ] abytes = new byte[1024]  
  3. int len = fis.read(abytes); 

在上述代碼中,我們打開了SD 卡根目錄下的a.txt 文件,同時,讀入1K 的數據,需要注意的是,read 并不能保
證一定讀入期望長度的數據,我們需要對讀入數據的長度進行檢查。

6 FileOutputStream

  1. FileOutputStream 與OutputStream 的用法差不多,在些也不多說,給出一個代碼吧:  
  2. FileOutputStream fos = new FileOutputStream("/sdcard/a.txt");  
  3. fos.write("Hello World!".getBytes());  
  4. fos.flush(); 

上述代碼會向a.txt 中寫入Hello World 字符,請注意,FileOutputStream 也使用了緩沖,因此,數據不會立即寫入文件中,當系統認為需要寫回數據的時候,真正的寫回才發生,因此,如果為了讓數據立即寫回,需要使用flush()方法。

也許你會問到,我不想把文件原有的內容抹到,怎么?這個也簡單,

  1. FileOutputStream fos = new FileOutputStream("/sdcard/a.txt", true); 

true 表示向文件后面追加數據

【編輯推薦】

Android模擬器使用SD卡

你如何正確啟動Android SDK 1.5模擬器

安裝Android SDK 2.0及創建2.0模擬器的方法

把Android源代碼加入SDK,就可以按F3查看類了

責任編輯:zhaolei 來源: eoeAndroid
相關推薦

2011-05-26 09:17:04

2010-01-26 10:10:51

Android模擬SD

2011-09-14 14:45:22

2013-01-09 15:04:45

AndroidSD卡SDCard

2020-10-30 08:20:04

SD卡TF卡存儲

2019-10-17 09:45:02

照片SD卡Windows 10

2021-09-11 22:32:26

Go 綁定 Host

2013-09-29 09:18:35

2022-10-08 08:56:11

UbuntuLinuxSD 卡

2018-01-08 15:30:18

Linux命令date

2020-07-07 09:19:28

Android 協程開發

2015-07-20 13:24:42

Windows 10SD卡

2014-09-25 11:08:17

ECLLispC語言

2011-07-27 16:18:42

Objective-c 協議

2024-04-10 11:50:28

2022-04-30 11:10:40

Nacos集群環境企業

2009-12-01 09:19:02

Windows 7SD卡數據丟失

2020-12-03 07:43:03

JS Ajax JavaScript

2012-05-11 09:38:00

MVVM Light

2017-05-24 09:43:42

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级久久 | 天天欧美 | 日韩免费看视频 | 国产精品视频区 | 黄色成人在线 | 国产精品久久一区二区三区 | 亚洲一区二区av | 欧美日韩成人一区二区 | 97影院在线午夜 | 日韩精品中文字幕在线 | 黄网免费 | 日韩国产精品一区二区三区 | 三级视频在线观看 | 亚洲综合国产 | 午夜a√ | 久久国产视频网 | 91久久| 成人国产在线视频 | 亚洲国产精品一区二区第一页 | 日韩欧美精品一区 | 国内精品久久久久 | 日韩精品一区二区三区高清免费 | 国产精品伦一区二区三级视频 | 精品久久久久久久 | 日日艹夜夜艹 | 99爱在线 | 亚洲精品视频在线播放 | 久久国产精品一区二区三区 | 欧美在线视频一区 | 中文字幕免费视频 | 91九色视频在线 | 日韩在线观看 | 日日干日日 | 日韩欧美精品一区 | 久久中文字幕一区 | 国产激情视频在线 | 久久久久久久久久久爱 | 亚洲欧美综合精品久久成人 | 天天操天天射综合网 | 久久久久久免费看 | 日韩成人在线网站 |