关于安卓读取资源文件的问题

我想通过IO流 读取raw或者assets下的txt文件 通过正则表达式找出匹配字符串来批量的将数据插入数据库

问题:我将方法写在databaseHelper 下的
public void onCreate(SQLiteDatabase db)
 中,想创建数据库和表后就初始化整个数据库[即插入完数据].  在网上查了资料,对于文件的读取都是getAssets()等这种,但是我写在databaseHelper类里没有这个方法的 , 我用的是如下代码,那么那个filepath的路径该怎么获取,或者说只能用getAssets()方法而不能用java读取文件的方法吗? 如果是那么该怎么实现在创建数据库后就插完所有数据 以后不再插入,这个方法应该写在那里..

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists t_word(" +
"id integer primary key autoincrement," +
"word varchar(20),meaning varchar(50))"); //创建表结构

//测试批量插入

insertWord("filepath", db);   
 //这里的filepath该怎么获取到资源文件中的路径 不用getAssets()方法的话?
}

//读取文件  插入文本
public static void insertWord(String filepath,SQLiteDatabase db)throws Exception{
String word="";
BufferedReader br=new BufferedReader(new FileReader(filepath));
//读取字符并匹配处理
while((word=br.readLine())!=null){
word=word.trim();
//System.out.println("单词:"+word);
parse(word,db);
}
System.out.println("录入单词成功");
}

//匹配文本 并插入文本
private static void parse(String word,SQLiteDatabase db) throws Exception{
Pattern p=Pattern.compile("\\w*-");
Matcher m=p.matcher(word);
if(m.find()){
try {

String sql="insert into t_word(word,meaning) values(?,?)";
db.execSQL(sql, new Object[]{word.substring(m.start(), m.end()-1),
                     word.substring(+m.end(), word.length())});


} catch (Exception e) {
db.close();
}

}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值