开发Android应用时,Assets文件夹是个特殊的地方,可以存放那些不会在编译时编入APK的原始文件。下面一起来看看怎么在代码中打开和读取这些文件。
Assets文件夹结构
Assets文件夹通常放在项目的src/main目录下。可以将需要的文件放进这个文件夹,比如配置文件、字体文件或者其他资源。
访问Assets文件夹
在Activity或其他Context中,可以通过AssetManager类来访问Assets文件夹:
AssetManager assetManager = getAssets();
打开Assets中的文件
拿到AssetManager实例后,就可以用它来打开Assets文件夹中的文件了:
InputStream is =assetManager.open("filename.txt");
把"filename.txt"换成要打开的文件名。这行代码会返回一个InputStream对象,可以用它来读取文件内容。
读取文件内容
有了InputStream,接着就可以读取文件的内容了。比如可以用BufferedReader来逐行读取:
BufferedReader reader = newBufferedReader(new InputStreamReader(is));
String line;
StringBuilder builder = newStringBuilder();
while ((line = reader.readLine()) != null){
builder.append(line);
}
is.close();
String fileContents = builder.toString();
这段代码会将文件内容读取到一个String里。
异常处理
操作I/O时,需要处理IOException,因为文件可能不存在或者无法读取:
try {
InputStream is = assetManager.open("filename.txt");
//读取操作
} catch (IOException e) {
e.printStackTrace();
}
这样就能确保程序在遇到I/O异常时不会崩溃。