举个例子:
'赵','1234'
'钱','2345''孙','3456'
'李','4567''周','56
78'
……
这是我文件里的内容,一共是五条数据:
赵 1234
钱 2345
孙 3456
李 4567
周 5678
但是在文件中的格式不规范,如上显示。
两条数据之间没有分隔符,如第二条和第三条;
一条数据的某个字段也可能分两行显示,如第五条,
现在我想把这些数据准确的读取出来并插入数据库,请问大家在读取这个地方该怎么编写
举个例子:
'赵','1234'
'钱','2345''孙','3456'
'李','4567''周','56
78'
……
这是我文件里的内容,一共是五条数据:
赵 1234
钱 2345
孙 3456
李 4567
周 5678
但是在文件中的格式不规范,如上显示。
两条数据之间没有分隔符,如第二条和第三条;
一条数据的某个字段也可能分两行显示,如第五条,
现在我想把这些数据准确的读取出来并插入数据库,请问大家在读取这个地方该怎么编写
[code="java"]
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
public class Reader {
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader("D:\input.txt");
BufferedReader br = new BufferedReader(fr);
List list = new ArrayList();
while (br.ready()) {
String line = br.readLine();
list.add(line);
}
Bean bean = null;
List result = new ArrayList();
bean = new Bean();
int count = 0;
boolean addname = true;
for (int i = 0; i < list.size(); i++) {
String line = (String) list.get(i);
while (line.indexOf("'") != -1) {
int index = line.indexOf("'");
count++;
if (count % 2 == 0) {
String tmp = line.substring(0, index);
line = line.substring(index + 1);
if (addname) {
if (bean.name == null) {
bean.name = tmp;
} else {
bean.name += tmp;
}
addname = false;
} else {
if (bean.code == null) {
bean.code = tmp;
} else {
bean.code += tmp;
}
addname = true;
result.add(bean);
bean = new Bean();
}
} else {
line = line.substring(index + 1);
}
}
if (!"".equals(line.trim())) {
if (addname) {
if (bean.name == null) {
bean.name = line.trim();
} else {
bean.name += line.trim();
}
} else {
if (bean.code == null) {
bean.code = line.trim();
} else {
bean.code += line.trim();
}
}
}
}
for (int i = 0; i < result.size(); i++) {
bean = (Bean) result.get(i);
System.out.println(bean.name + "\t" + bean.code);
}
}
}
class Bean {
public String name;
public String code;
}
[/code]
一种实现,你看看可没可用吧。
对于这样的解析,都是有针对性的,不会有很通用的方法,都是遇到了什么处理什么,
你提到的我处理了,如有问题再联系。