今天在做easyEnglishLearning的过程中,因为要读取本地的sql脚本,放置在Android目录下的assets文件夹中,搞了一个晚上一直在读取的时候发生FileNotFound错误,最后终于搞清楚了。
在Android Studio中assets文件夹是不会默认创建的,这和Eclipse不一样,所以我们就要手工创建这个文件夹就好了。刚开始我是直接右键->new->Directory来创建的assets文件夹,谁知道这并不会被AS编译器获取。正确的创建方法是在app文件夹上右键,选择new->Floder->Assets Floder,这样创建出来的assets文件夹才会被AS正确读取到。
以下是读取时的程序:
try {
System.out.println("路径:"+Configuration.DB_PATH + "/" + schemaName);
in = new BufferedReader(new InputStreamReader(mContext.getAssets()
.open(Configuration.DB_PATH + "/" + schemaName)));
String line;
String buffer = "";
while ((line = in.readLine()) != null) {
buffer += line;
if (line.trim().endsWith(";")) {
db.execSQL(buffer.replace(";", ""));
buffer = "";
}
}
} catch (IOException e) {
Log.e("db-error", e.toString());
} finally {
try {
if (in != null)
in.close();
} catch (IOException e) {
Log.e("db-error", e.toString());
}
}