當前位置:首頁 » 存儲配置 » android文件存儲讀取

android文件存儲讀取

發布時間: 2025-03-07 22:55:07

⑴ android怎麼讀取sd卡中的文件

sd卡根目錄是external_sd:

1.若將手機中的文件與外置SD卡互相轉移,請操作:

2.若是將存儲在話機中的多媒體文件移動到SD卡中:我的文件-所有文件-sdcard0-查找需要移動的文件夾-長按住不鬆手-移動至(若沒有此菜單,請點擊菜單鍵-移動)-返回到external_sd-點擊「移動到此處」。反之亦然。

3.對於手機不支持軟體搬家,是因為沒有root,可以先使手機軟體獲得root許可權,但是也有說法root容易引起手機死機,系統崩潰現象,畢竟手機root許可權基本都是藉助第三方軟體來完成

3.有的軟體都是獲得了手機的root許可權,可以多嘗試幾種軟體搬家

⑵ Android開發之如何讀寫文件

【轉】

首先介紹如何存儲數據,顯然,要將數據從應用中輸出到文件中,必須得到一個輸出流outPutStream,然後往輸出流中寫入數據,在這里Android自帶了一個得到應用輸出流的方法

FileOutputStream fos =context.openFileOutput(「yuchao.txt」,Context.MODE_PRIVATE); (1)

其中第一個屬性為文件名,第二個屬性為讀寫模式(有關讀寫模式的說明下面將詳細闡述),

然後在文件輸出流fos中便可以寫入數據

Fos.write(「Hi,」I』m Chao Yu!」.getBytes());

用完文件輸出流之後記得關閉

fos.close();

這樣,在/data/data/packageName/file目錄下就生成了一個文件名為yuchao.txt的文件,文件中的內容為」 Hi,I』m Chao Yu!」

有關(1)中讀寫模式其實就是制定創建文件的許可權以及在讀寫的時候的方式,Android中提供了以下幾種讀寫模式

Context.MODE_PRIVATE = 0

該模式下創建的文件其他應用無權訪問,並且本應用將覆蓋原有的內容

Context.MODE_APPEND = 32768

該模式下創建的文件其他應用無權訪問,並且本應用將在原有的內容後面追加內容

Context.MODE_WORLD_READABLE = 1

該模式下創建的文件其他應用有讀的許可權

Context.MODE_WORLD_WRITEABLE = 2

該模式下創建的文件其他應用有寫的許可權

如果需要將文件設置為外部應用可以讀寫,可將讀寫模式設置為Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE

一般情況下,各個應用維護的數據都在一個特定的文件夾中,即上面所提到的/data/data/packageName/file(存在於手機存儲中),但手機內存畢竟有限,所以有些情況下,我們需要往SD卡中寫入數據文件,這其實和普通的java web 應用步驟一樣,都是先創建特針對特定目錄特定文件的輸出流,然後往輸出流中寫數據,這里要注意一個方法,就是獲取SD卡根目錄的方法,隨著Android系統不斷升級,SD卡的根目錄隨時都有可能改變,Android中得到SD卡根目錄的方法是

File sdCardDir = Environment.getExternalStorageDirectory();

然後就可以進行下面的步驟

File saveFile = new File(sdCardDir, 「yuchao.txt」);

FileOutputStream outStream = new FileOutputStream(saveFile);

outStream.write("Hi,I』m ChaoYu".getBytes());

outStream.close();

值得注意的是,在往SD卡中寫數據的時候,健壯的代碼必須考慮SD卡不存在或者防寫的情況,故在寫入之前,先做判斷

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

……

}

接著,我們來學習下我們的應用程序如何讀取文件中的數據,其實就是寫的逆向過程

若要讀取應用程序默認維護的文件(即/data/data/packageName/file目錄下的文件),首先得到文件輸入流

FileInputStream istream = this.context.openFileInput(「yuchao.txt」);

然後在內存中開辟一段緩沖區

byte[] buffer = new byte[1024];

然後創建一個位元組數組輸出流

ByteArrayOutputStream ostream = new ByteArrayOutputStream();

讀出來的數據首先放入緩沖區,滿了之後再寫到字元輸出流中

while((len=istream.read(buffer))!=-1){

ostream.write(buffer, 0, len);

}

最後關閉輸入流和輸出流

istream.close();

ostream.close();

將得到的內容以字元串的形式返回便得到了文件中的內容了,這里的流操作較多,故以一張圖片來說明,見圖1

return new String(ostream.toByteArray());

從SD卡中讀取數據與上述兩個步驟類似,故不再贅述,留給讀者自己思考

如在開發過程中進行SD卡地讀寫,切忌忘了加入許可權

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

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

至此,Android系統中有關文件數據的讀寫介紹完畢。

⑶ 數據存儲和讀取該怎麼實現

Android應用開發中,給我們提供了5種數據的存儲方式
1 使用SharedPreferences存儲數據
2 文件存儲數據
3 SQLite資料庫存儲數據
4 使用ContentProvider存儲數據
5 網路存儲數據
不同的業務邏輯,或者需求,用不同的實現方式,以下是這幾中數據存儲方式的說明用及法:

第一種: 使用SharedPreferences存儲數據
SharedPreferences是Android平台上一個輕量級的存儲類,主要是保存一些常用的配置比如窗口狀態,一般在Activity中 重載窗口狀態onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常規的Long長 整形、Int整形、String字元串型的保存。
以下為示例代碼:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//獲取SharedPreferences對象
Context ctx = MainActivity.this;
SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
//存入數據
Editor editor = sp.edit();
editor.putString("STRING_KEY", "string");
editor.putInt("INT_KEY", 0);
editor.putBoolean("BOOLEAN_KEY", true);
editor.commit();

//返回STRING_KEY的值
Log.d("SP", sp.getString("STRING_KEY", "none"));
//如果NOT_EXIST不存在,則返回值為"none"
Log.d("SP", sp.getString("NOT_EXIST", "none"));
}
}

第二種: 文件存儲數據
關於文件存儲,Activity提供了openFileOutput()方法可以用於把數據輸出到文件中,具體的實現過程與在J2SE環境中保存數據到文件中是一樣的。
文件可用來存放大量數據,如文本、圖片、音頻等。
默認位置:/data/data/ >/files/***.***。
代碼示例:
public void save(){
try {
FileOutputStream outStream=this.openFileOutput("a.txt",Context.MODE_WORLD_READABLE);
outStream.write(text.getText().toString().getBytes());
outStream.close();
Toast.makeText(MyActivity.this,"Saved",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
return;
}
catch (IOException e){
return ;
}
}

第三種: SQLite資料庫存儲數據
SQLite是輕量級嵌入式資料庫引擎,它支持 SQL 語言,並且只利用很少的內存就有很好的性能。此外它還是開源的,任何人都可以使用它。許多開源項目((Mozilla, PHP, Python)都使用了 SQLite。
SQLite 由以下幾個組件組成:SQL 編譯器、內核、後端以及附件。
SQLite 通過利用虛擬機和虛擬資料庫引擎(VDBE),使調試、修改和擴展 SQLite 的內核變得更加方便。
讀取文件示例:

public void load(){
try {
FileInputStream inStream=this.openFileInput("a.txt");
ByteArrayOutputStream stream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int length=-1;
while((length=inStream.read(buffer))!=-1) {
stream.write(buffer,0,length);
}
stream.close();
inStream.close();
text.setText(stream.toString());
Toast.makeText(MyActivity.this,"Loaded",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e){
return ;
}
}

第四種 使用ContentProvider存儲數據 ContentProvider其實也是通過資料庫的方式來存儲數據的,因此這里不再做詳細介紹

第五種 網路存儲數據 也就是說將數據保存在伺服器,android上只需要通過httpclient發起一個請求,向伺服器獲取數據即可
火台,驛馬,電報機,電話等。人類儲存信息的工具有:牛骨﹑竹

⑷ android應用程序的資源文件放在那裡的啊

Android應用程序的資源文件存儲位置與普通程序有所不同。安裝完成後,Android應用會被存儲在/data/app或/system/app目錄中。這些目錄包含了程序運行時所需的資源文件,如layout文件、drawable文件等,它們從原文件中讀取。

資源文件的載入過程首先是從resource.asc文件開始的,這個文件包含了資源的索引信息。根據id值,系統可以定位到相應的資源文件。對於一些特殊的文件,如lib目錄下的庫文件,它們會被存儲在/data/data/你的應用包名目錄下。

舉例來說,如果你的應用名為com.example.myapp,那麼lib目錄下的庫文件將會存儲在/data/data/com.example.myapp/lib目錄中。這樣設計可以確保每個應用的資源文件都是獨立的,不會與其他應用產生沖突。

需要注意的是,對於開發者而言,直接操作這些目錄中的文件是不被推薦的。因為這些目錄通常都是受保護的,只有系統許可權的應用才能讀寫其中的內容。開發者可以通過Android的資源管理機制,如R類和資源文件管理工具,來管理和訪問這些資源文件。

資源文件的管理是Android開發中非常重要的一部分。通過合理組織和管理資源文件,可以提高應用的可維護性和擴展性。開發者應當熟悉資源文件的存儲位置和訪問機制,以便更高效地進行開發和調試。

總體而言,Android應用的資源文件存儲在/data/app或/system/app目錄中,布局文件、圖片等資源文件則存放在/data/data/你的應用包名目錄下的相應子目錄中。了解這些細節有助於開發者更好地管理和優化應用資源。

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:639
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:84
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:310
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:793
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:344
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:812
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:366
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:593