导航:首页 > 操作系统 > 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相关的资料

热点内容
滴滴程序员平均月薪 浏览:588
如何使用ftp命令 浏览:785
小书亭下载的文件在哪手机文件夹 浏览:173
交叉编译器编译单个c文件 浏览:509
代理服务器地址列表吧 浏览:928
java列出所有文件 浏览:866
压缩包看图软件 浏览:188
sqlite在android中的应用 浏览:659
一本通pdf 浏览:913
2021免费的编程软件 浏览:124
项目编译后浏览器不对应刷新 浏览:565
三星升级android60 浏览:295
粘土的压缩模量 浏览:118
美国程序员生活 浏览:222
51单片机摘要 浏览:408
英语经典pdf下载 浏览:320
大学文件夹怎么删除 浏览:671
linux科研软件 浏览:556
ue4打包编译着色器 浏览:778
云服务器可以在手机上登录吗 浏览:678