如下txt文本,
姓名:小张
性别:男
姓名:小李
性别:女
这样的txt如何用java解析,不同人之间该如何用代码来表示,多个人,该如何循环,

解决方案 »

  1.   

    可以把这些信息放到xml文件里,再进行解析
      

  2.   


    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;
    }


    }写这样一个类 再用输入流 一行一行读取 再把每一行 按:分割 信息封装成对象存到一个集合去 至于怎么知道小李  你只要判断那个名字字符串是否是小李就行了啊
      

  3.   

    可以用序列化来实现,将对象写入*.txt中
      

  4.   

    用xml或者json吧,结构很清晰,也都现成的辅助类,很好处理。
      

  5.   

    当然若你不想写Person类来封装的话,可以直接用Map,前提无重名。循环前两行,
    map.put("小张", "男");循环后两行,
    map.put("小李", "女");用map的key就可以区别小张和小李了。
      

  6.   

    4l 和 8l都是正确的 无论怎么样都要有个key来区别
      

  7.   


    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]