AssestManager
AssetManager 是 Android 中用于访问应用程序资源(如文本文件、图片、音频文件等)的类。它提供了对应用内部资源的访问接口,通常用于读取和管理应用内的原始资源文件。
使用 AssetManager
- 获取 AssetManager 实例 通常情况下,可以通过 Context 对象获取 AssetManager 的实例:
java 复制代码 AssetManager assetManager = context.getAssets(); 2. 访问 Assets 中的文件 2.1 读取文本文件 java 复制代码 try { // 打开资源文件 InputStream inputStream = assetManager.open("file.txt");
// 读取内容
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
reader.close();
// 处理读取的内容
String content = stringBuilder.toString();
// 关闭输入流
inputStream.close();
} catch (IOException e) { e.printStackTrace(); } 2.2 打开和读取图片文件 java 复制代码 try { // 打开图片文件 InputStream inputStream = assetManager.open("image.png");
// 将 InputStream 转换为 Bitmap
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
// 处理 Bitmap 对象(例如显示在 ImageView 中)
// 关闭输入流
inputStream.close();
} catch (IOException e) { e.printStackTrace(); } 3. 列出 Assets 目录中的文件 如果需要列出 Assets 目录下的所有文件或子目录,可以使用 list(String path) 方法:
java 复制代码 try { // 列出根目录下的所有文件和子目录 String[] files = assetManager.list("");
// 处理列出的文件和子目录
for (String file : files) {
Log.d("AssetManager", "File: " + file);
}
} catch (IOException e) { e.printStackTrace(); } 注意事项 文件路径: 访问 Assets 中的文件时,需要指定文件的相对路径,相对路径是相对于 Assets 文件夹的。 资源类型: AssetManager 主要用于管理和访问原始的非编译资源,如文本、图片、音频等文件。对于编译后的资源(如布局文件、字符串等),应使用 Resources 类的方法访问。 线程安全: AssetManager 的实例通常是线程安全的,可以在多个线程中共享和使用。