当前位置:编程学习 > JAVA >>

求给个思路 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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,