关于android安卓的静态数据库文件的存取问题

这篇博客探讨了如何利用中国天气网的数据,解析后存储到本地数据库,特别是将数据库文件放入Android应用的res/raw文件夹中,以便用户通过输入地名进行本地搜索,点击搜索按钮后返回相应的天气信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@author  逸筱幻
今天写了一个安卓的天气的app。虽然这种技术已经很老了。但是还是碰到了许多的问题。

网上很多人都直接调用百度或者谷歌的天气的api.利用地理位置可以直接获得天气。

但是我这边使用的是中国天气网的数据。 (http://www.weather.com.cn/data/cityinfo/101010100.html)使用地名获取数据。

其中最关键的问题涉及到数据库。

我想实现的功能是让用户可以进行本地搜索。在输入框输入一个地名。点击搜索按钮之后,

然后返回搜索结果。

地名的有关所有的数据是从中国天气网获得的。获得后我将这个文件解析后存入数据库。

然后将这个数据库文件存入res/raw文件夹下

public static String createDatabaseFileIfNotExist(Context context,String fileName){
	   //先在res下新建raw目录存放数据库文件  本例采用dbtest.db
	   File dir  =  context.getFilesDir();
	   File myfile = new File(dir.getAbsoluteFile()+"/"+fileName);
	   if(!myfile.exists()){
		   InputStream is = context.getResources().openRawResource(R.raw.dbtest);
		   FileOutputStream os;
		   	  try {
				  os = context.openFileOutput(fileName,Context.MODE_PRIVATE);
				 byte[] buffer = new byte[1024];
				  int count = 0;
				  // 将静态数据库文件拷贝到目的地
				  while ((count = is.read(buffer)) > 0) {
				    os.write(buffer, 0, count);
				  }
				  is.close();
				  os.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
	   }
	   //返回数据库文件的路径
	   return myfile.getAbsolutePath();
}


这样就可以获取数据库文件的路径。然后通过openDatabase函数打开了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值