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

热点内容
韩顺平php视频笔记 浏览:636
阿里云ecs服务器如何设置自动重启 浏览:596
三星电视怎么卸掉app 浏览:317
如何将pdf转换成docx文件 浏览:32
dos命令批量改名 浏览:376
centosphp环境包 浏览:601
mfipdf 浏览:534
电脑解压后电脑蓝屏 浏览:295
外网访问内网服务器如何在路由器设置 浏览:856
2014统计年鉴pdf 浏览:434
linuxoracle用户密码 浏览:757
股票交易pdf 浏览:898
p2papp源码 浏览:308
记录睡眠软件app哪个好用 浏览:140
液压助力车压缩比 浏览:217
文件服务器上如何查看 浏览:975
雪花绘制源码 浏览:662
app主页演示图怎么做 浏览:542
幼儿园设计pdf 浏览:645
干接点输入单片机 浏览:541