您的位置:首页 > 数据库

解析固定格式txt文件插入数据库

2012-08-17 15:28 351 查看
朝阳区

车龙汽车装饰(望京店)

南湖西园502号院中广宜景湾底商

4000052365

null

8:30-18:30

39.904214, 116.40741300000002

昌平区

京杰汽车服务

文华路龙锦苑四区2号楼底商

010-81746257

null

尚无营业时间

40.0822929, 116.34415969999998

丰台区

贝贝鱼汽车座套

公益西桥城南大道2座801室

18600019317

null

8:00—18:00

39.835887, 116.37078099999996

丰台区

金诚都汽车用品商行(草桥店)

草桥汇丰汽配城5排13号

010-51751365

null

尚无营业时间

39.904214, 116.40741300000002

大兴区

龙百特汽车用品

黄鹅路3号

010-52837324

null

早8:30—晚4:30

39.7524077, 116.28156289999992

海淀区

琪朗汽车美容中心(清河店)

清河小营环岛西北侧通厦汽配城1楼109号

010-60605109

null

8:30——18:00

40.0287122, 116.36658820000002

------------------------------------------------------------------------------------------------------------

小部分固定txt文件

代码实现思路

1.逐行读取txt文件加入到list集合

2.循环list集合 把数据封装到bean类中

3.由于信息有7行第8行是空格 bean定义8个属性 循环给BEAN类赋值

4.把赋值后的对象加入list集合中 把属性list清空 变量赋值 continue重新赋值

5.返回对象集合

public List<ShopInfo> readFile(String file){//String file 为文件路径

List list=new ArrayList();//保存每组信息的list集合

List<ShopInfo> shopList=new ArrayList<ShopInfo>();//保存shopinfo对象的集合

ShopInfo shop =null;

int count=1;//定义循环的变量

String line;

File f = new File(file);

try {

FileReader fr = new FileReader(f);

BufferedReader br = new BufferedReader(fr);

//逐行读取

while((line = br.readLine())!=null){

list.add(line);

count++;

if(count%9==0){

//循环创建对象并赋值

shop=new ShopInfo();

shop.setDistrict((String)list.get(0));

shop.setName((String)list.get(1));

shop.setAddress((String)list.get(2));

shop.setPhone((String)list.get(3));

shop.setTel((String)list.get(4));

shop.setOpenTime((String)list.get(5));

shop.setShopInMap((String)list.get(6));

/*shop.setEmpty((String)list.get(7));*/

shopList.add(shop);

list=new ArrayList();

count=1;

continue;

}

}

} catch (FileNotFoundException e1) {

e1.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return shopList;

}

6.返回对象集合后遍历集合 循环中取各个属性 编写sql语句 把属性插入的sql语句中 调用操作数据库底层代码完成循环插入

@Override

public void doSave(String fileName) {

// TODO Auto-generated method stub

FileReaderDao readerDao=new FileReaderDaoImpl();

List<ShopInfo>list=readerDao.readFile(fileName);

for(int i=0;i<list.size();i++){

String str=list.get(i).getAddress();

String district=list.get(i).getDistrict();

String Name=list.get(i).getName();

String Address=list.get(i).getAddress();

String Phone=list.get(i).getPhone();

String Tel=list.get(i).getTel();

String OpenTime=list.get(i).getOpenTime();

String ShopInMap=list.get(i).getShopInMap();

String Empty=list.get(i).getEmpty();

String sql="insert into shopinfo values(shop_id.nextval,'"+district+"','"+Name+"','"+Address+"','"+Phone+"','"+Tel+"','"+OpenTime+"','"+ShopInMap+"','"+Empty+"')";

System.out.println(sql);

super.executeUpdate(sql, null);

}

}

7以后相同类型格式的文件只要修改文件所在位置String fileName就可以了

8.刚刚实现业务逻辑 还将继续修改方法 使功能更加灵活快速
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: