carniege 请看看!先谢谢你的回复和批评!麻烦你了!

[复制链接]
查看11 | 回复9 | 2011-5-7 01:45:08 | 显示全部楼层 |阅读模式
先谢谢你的回复和批评
我看了你的代码
可是:取txt 文件时,核心问题是取txt 文件时,它的
[1] 标识 = 号:号的处理 该怎么处理

txt文件的格式:它有 = 号 和 :号
如:“单位名称”存在name1中,“舟山市普陀区发展和改革局”存在contxt1

[1]
单位名称=舟山市普陀区发展和改革局
项目所属地区=舟山
项目名称=舟山岛际流动海水淡化供水
地址=舟山市普陀区沈家门中大街125号
联系人=缪红波
电话=0580—3013496
传真=0580—3013496
电子邮件[email protected]
项目发起单位情况=普陀区是我国海岛县(区)中经济最为发达,所辖岛屿最多的县(区)。其中旅游业和渔业尤其享誉国内外。但近年来,淡水资源的缺乏,制约了其发展速度。把我国具有自主知识产权的海水淡化技术作为解决海岛地区缺水问题的一个重要突破口,可从根本上解决海岛居民遇旱无水喝的困难局面和经济发展的水资源紧缺瓶颈问题,实现水资源的可持续利用。
项目类型=浙江省重点项目
合作方式和内容:独资、合资、合作
项目中方可提供的合作条件:舟山市普陀区发展和改革局提供项目有关资料和项目前期报批服务等
[2]
单位名称=鹿城区发展计划局
项目所属地区=温州
项目名称=温州玉林水库枢纽工程
地址=温州市学院西路22-6号
联系人=严云川
电话=0577-88358823
传真=0577-88358197
电子邮件=
项目发起单位情况=玉林水库枢纽工程位于温州市鹿城区岙底乡玉林村,距鹿城区藤桥镇6公里,距温州老城区35公里,交通方便。水库坝址位于戍浦江支流玉林溪上游约500米处。供水对象为下游的藤桥镇、上戍乡、临江镇以及鹿城区轻工特色园区,年可供水2850万立方米。另外,通过本工程的建设和戍浦江下游防洪工程的建设,可使戍浦江(下游)流域防洪标准达到二十年一遇。
项目类型=浙江省重点项目
拟合作方式=合资、合作
项目所属行业=城市基础设施
项目描述=玉林水库为防洪、供水兼顾的水利工程,坝址位于岙底乡玉林村上游约100米,水库集雨面积26.0平方公里,工程总用地1566亩。水库总库容2059万立方米。大坝为拱坝,最大坝高70米,设计日供水量6.05万立方米。 工程总投资1.59亿元。
合作内容:合资、合作
项目中方可提供的合作条件:
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
你想做什么呢,你是不是要分解文件啊,如果是这样的话,你可以把取出来的text文本生成一个property文件,然后用getProperty(key)来取值
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
先谢谢你的回复!
我是要把txt 文件分解。 然后保存到数组里,再插到数据库里,可我遇到难点:
1.怎么循环插入(找到一行子符串 ,分解后,保存到数组里,插入数据库 )


2.我取数组时,发生 越界 ,我不知怎么处理
txt 文件格式:
[1]
单位名称=舟山市普陀区发展和改革局
项目所属地区=舟山
项目名称=舟山岛际流动海水淡化供水
地址=舟山市普陀区沈家门中大街125号
联系人=缪红波
我的代码:
我只要 System.out.println(lineItems[2]);
就报错 java.lang.ArrayIndexOutOfBoundsException:
我的代码:

/*
* Created on 2006-8-25
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class ph {

public static void main(String[] args) {



try {




//
驱动程序名

String driverName="com.mysql.jdbc.Driver";
//
数据库用户名

String userName="sa";
//
密码

String userPasswd="sa";
//
数据库名

String dbName="jdsh";
//
表名

String tableName="ip";
//
联结字符串

String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;

Class.forName("com.mysql.jdbc.Driver&quot

.newInstance();

Connection connection=DriverManager.getConnection(url);

Statement stmt = connection.createStatement();



File file = new File("d:\\sin.txt&quot

;

RandomAccessFile dataFile=new RandomAccessFile(file, "r&quot

;

String line=dataFile.readLine();



while(line!=null)

{

line=new String(line.getBytes("ISO_8859_1&quot

,"GBK&quot

;

String[] lineItems=line.split("=&quot

;


String sqlstr="insert into ip (ip1,ip2,add1,add2) values('"+lineItems[0]+"','"+lineItems[1]+"','"+lineItems[2]+"','"+lineItems[3]+"')";
//stmt.executeUpdate(sqlstr);

// System.out.println(sqlstr);

// System.out.println(lineItems[1]);
System.out.println(lineItems[0]);



// System.out.println(lineItems[1]);


line=dataFile.readLine();

}

dataFile.close();

stmt.close();

} catch (Exception e) {



e.printStackTrace();

}
}}
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
只要 System.out.println(lineItems[1]);
就报错 java.lang.ArrayIndexOutOfBoundsException:
lineItems[1] 里的是我要的子段!
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
你或者把文件一行行读,然后对每行用StringTokenizer来分解,
另外一种办法是把文件后坠名改成properties,
然后就可以getProperty(Key)得到每个等号后面的值,key是等号前得,妳用keys可以得到key列表,
你去看一下java.util.Properties这个类
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
谢了
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
这东西感觉应该自己先读文件,然后自己来解析,因为有太多的标识,而且换行随意,必须自己特殊处理,
用getProperty(Key)这样的应该不行,
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
关注中
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
楼主解决的怎么样了
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
谢冥王星酋长!
问题以解决!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行