導航:首頁 > 操作系統 > android遍歷assets

android遍歷assets

發布時間:2022-08-02 17:21:51

android-Android下怎麼遍歷assets錄下的子文件夾

assets文件夾裡面的文件都是保持原始的文件格式,需要用AssetManager以位元組流的形式讀取文件。
assets的讀取方式:
1. 先在Activity裡面調用getAssets() 來獲取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法則指定讀取的文件以及訪問模式就能得到輸入流InputStream。
3. 然後就是用已經open file 的inputStream讀取文件,讀取完成後記得inputStream.close() 。
4.調用AssetManager.close() 關閉AssetManager。
需要注意的是,來自Resources和Assets 中的文件只可以讀取而不能進行寫的操作。

❷ 如何從native層直接獲取 assets文件夾下的文件

遍歷文件夾可以有2中方式:
A.不使用遞歸:

import java.io.File;

import java.util.LinkedList;

public class FileSystem {

public static void main(String[] args) {

long a = System.currentTimeMillis();

LinkedList list = new LinkedList();

File dir = new File("c:\\java\\");

File file[] = dir.listFiles();

for (int i = 0; i < file.length; i++) {

if (file[i].isDirectory())

list.add(file[i]);

else

System.out.println(file[i].getAbsolutePath());

}

File tmp;

while (!list.isEmpty()) {

tmp = list.removeFirst();

if (tmp.isDirectory()) {

file = tmp.listFiles();

if (file == null)

continue;

for (int i = 0; i < file.length; i++) {

if (file[i].isDirectory())

list.add(file[i]);

else

System.out.println(file[i].getAbsolutePath());

}

} else {

System.out.println(tmp.getAbsolutePath());

}

}

System.out.println(System.currentTimeMillis() - a);

}

}
B.使用遞歸:

import java.io.File;

import java.util.ArrayList;

public class FileSystem1 {

private static ArrayList filelist = new ArrayList();

public static void main(String[] args) {

long a = System.currentTimeMillis();

refreshFileList("c:\\java");

System.out.println(System.currentTimeMillis() - a);

}

public static void refreshFileList(String strPath) {

File dir = new File(strPath);

File[] files = dir.listFiles();

if (files == null)

return;

for (int i = 0; i < files.length; i++) {

if (files[i].isDirectory()) {

refreshFileList(files[i].getAbsolutePath());

} else {

String strFileName = files[i].getAbsolutePath().toLowerCase();

System.out.println("---"+strFileName);

filelist.add(files[i].getAbsolutePath());

}

}

}

}

❸ Android列舉assets內的文件夾問題

assets文件夾是android程序中存放相關外部文件的一個目錄,Android官方提供了相應的方法去訪問該文件夾中的內容,故此並不需要進行相關的路徑判斷等代碼操作,直接調用相關方法打開文件並得到一個位元組輸入流(InputStream);
然後通過相應的字元編碼方式讀取位元組解碼為字元輸入流(InputStreamReader);再通過BufferReader對字元輸入流讀取文本並將字元存入緩沖區以便能提供字元、數組和線段的高效讀取;最後我們就能逐行對文件內容進行讀取了。
參考代碼如下:
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

try {
InputStream inputStream = getResources().getAssets().open("info.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String info = "";
while ((info = bufferedReader.readLine()) != null) {
Log.i("fff", info);
Toast.makeText(MainActivity.this, info, 1000).show();
}
} catch (IOException e) {
e.printStackTrace();
}

}

}

❹ android載入assets中的json格式文件

assets資源目錄一般用於存放html文件、資料庫文件、javascript文件,assets目錄下的文件不會在R.java自動生成ID,所以讀取assets目錄下的文件必須指定文件的路徑

在代碼中使用AssertManager獲取文件的輸入流讀取

AssetManagerassetManager=context.getAssets();
try{
InputStreamis=assetManager.open("json.data");
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
StringBufferstringBuffer=newStringBuffer();
Stringstr=null;
while((str=br.readLine())!=null){
stringBuffer.append(str);
}

}catch(IOExceptione){
e.printStackTrace();
}


也可以把json文件放在res的raw目錄下

res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;

但是需要注意的是assets允許有目錄結構,而raw不行

讀取方法大同小異

try{
InputStreamis=getResources().openRawResource(R.id.file);
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
StringBufferstringBuffer=newStringBuffer();
Stringstr=null;
while((str=br.readLine())!=null){
stringBuffer.append(str);
}

}catch(IOExceptione){
e.printStackTrace();
}

❺ 安卓中assets目錄有什麼作用

在數據傳遞過程中起到數據存儲的作用!!!!!使用的比較多的數據結構有:list(列表),map<key , value>,array(數組),對這些數據結構的基本操作要熟練,例如存取,遍歷。
、如果對你有幫助 希望採納!!!!!!!!!

❻ android項目工程下面的assets目錄的作用是什麼

用於存放應用程序中使用的外部資源文件,程序可以通過I/O流對目錄中的文件進行讀寫,存放在此目錄下的文件都會被打包到發布包中。完美的解釋,呵呵

❼ Android開發問題怎麼解決

  1. R.java消失或解析異常

  2. 自定義title欄

  3. SQLite isFirst和isBeforeFirst方法的區別

  4. eclipse刪除空行

  5. getX()和getRawX()的區別

  6. imagView居中顯示問題

  7. synchronized引發了 java.util.

  8. 獲取隨機顏色

  9. 去掉Activity的標題欄,全屏顯示

  10. 如何修改應用名稱及應用圖標

  11. 關於調試方法

  12. Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.

  13. android.content.res.Resources.loadXmlResourceParser

  14. android.content.res.Resources$NotFoundException

  15. 交互性的button定義的方法

  16. 在超級終端中執行程序報錯-Permission deny

  17. 從svn導入工程項目有驚嘆號

  18. 從svn導入工程項目有驚嘆號

  19. 首次進入帶有EditText的Activity不自動彈出軟鍵盤,再次點擊才彈

  20. Gallery中OnItemClickListener與OnItemSelectedListener的區別

  21. Eclipse中簽名導出apk崩潰,手動簽名

  22. android.view.InflateException: Binary XML file line #異常的解決

  23. 將assets文件夾中的壓縮包拷貝到sdcard中(不限大小)

  24. 判斷是否有root許可權

  25. 最簡單的Root 模擬器的方法

  26. 新版ADT開啟eclipse提示 "Running Android Lint" has encountered a problem

  27. 新版ADT開啟eclipse提示cannot open libstdc++.so.6..

  28. 無法升級ADT

閱讀全文

與android遍歷assets相關的資料

熱點內容
如何設置異地伺服器 瀏覽:882
為什麼安卓手機藍牙耳機不會彈窗 瀏覽:546
linuxf77編譯器安裝教程 瀏覽:949
android本地錄音許可權 瀏覽:446
加密u盤內容怎麼拷貝 瀏覽:283
安卓手機為什麼看不到iso文件 瀏覽:582
用圖片做文件夾圖標 瀏覽:693
java正則表達式語法 瀏覽:865
美圖秀在線壓縮圖片 瀏覽:184
蘋果自帶控制app是什麼 瀏覽:907
孩子學編程怎麼樣 瀏覽:589
網路編程經典書籍 瀏覽:612
曲靖創建網站java程序員 瀏覽:690
256位加密中是什麼意思 瀏覽:97
php多維數組去重 瀏覽:308
做程序員這一行儲備人才怎麼看 瀏覽:461
參加密逃文 瀏覽:327
蘋果編程語言ios 瀏覽:764
求解病態系統常用的演算法 瀏覽:994
駕校用的app叫什麼 瀏覽:219