求给个思路 java解析txt
如下txt文本,姓名:小张
性别:男
姓名:小李
性别:女
这样的txt如何用java解析,不同人之间该如何用代码来表示,多个人,该如何循环,
--------------------编程问答-------------------- 用输入流 一行一行读取 再把每一行 按:分割 把信息封装到一个类里面 再将每个对象用集合存储 --------------------编程问答-------------------- 如何区别那个小张哪个是小李
--------------------编程问答-------------------- 可以把这些信息放到xml文件里,再进行解析 --------------------编程问答--------------------
public class person{
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
写这样一个类 再用输入流 一行一行读取 再把每一行 按:分割 信息封装成对象存到一个集合去 至于怎么知道小李 你只要判断那个名字字符串是否是小李就行了啊 --------------------编程问答-------------------- 可以用序列化来实现,将对象写入*.txt中 --------------------编程问答-------------------- 用xml或者json吧,结构很清晰,也都现成的辅助类,很好处理。 --------------------编程问答-------------------- 4L的方法还是靠谱的。。。 --------------------编程问答-------------------- 当然若你不想写Person类来封装的话,可以直接用Map,前提无重名。
循环前两行,
map.put("小张", "男");
循环后两行,
map.put("小李", "女");
用map的key就可以区别小张和小李了。 --------------------编程问答-------------------- 按照四楼那样的 行号为基数创建对象 偶数加入到集合 --------------------编程问答-------------------- 4l 和 8l都是正确的 无论怎么样都要有个key来区别 --------------------编程问答-------------------- 不是这样的,我是读取,有10万条呢,一条记录我会一行一行的读取,每次读一次就是一个属性,可是多个在一起了,前提是不知道小李还是小张,我目的是提取信息,批量的
--------------------编程问答-------------------- 我也遇到了,现在还没有好的方法,楼主进展如何了! --------------------编程问答--------------------
public class Test1 {
//简要逻辑,还有很多要优化的地方,比如说异常的控制,文件是否存在
public static void main(String args[]) throws IOException{
File file =new File("D:\\1.txt");
BufferedReader input = new BufferedReader(new FileReader(file));
String str = null;
String[] array =null;
List<Person> list = new ArrayList<Person>();
while((str=input.readLine())!=null){
array = str.split(",");
list.add(new Person(array[0],array[1]));
}
input.close();
for(Person person : list){
System.out.println(person.toString());
}
}
}
class Person{
private String name;
private String sex;
Person(String name,String sex){
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Person [name=" + name + ", sex=" + sex + "]";
}
}
文件格式:
chenhong,mail
wanglei,femail
输出结果:
Person [name=chenhong, sex=mail]
Person [name=wanglei, sex=femail]
补充:Java , Java SE