-4

这就是我在我的 java 程序中为我正在上的一门课所尝试的。

我有一个文本文件,其中包含我朋友的姓名、电话号码和电子邮件地址。我应该建立一个类,它将获取文本文件并存储有关我朋友的信息,然后询问朋友的姓名。使用该名称,它将显示该朋友的电话号码和电子邮件地址。我怎样才能做到这一点?此外,我必须创建另一个类,以便稍后将朋友添加到列表中。

我知道使用列表是必要的。

只是不确定,如何制作Java

  • 读取文件
  • 将其拆分为姓名、电话等“类别”,
  • 然后能够搜索名称并返回正确的信息。

文本文件的结构如下:

Name
Phone
Email
Name
..etc

请帮我提供链接/示例代码....

4

4 回答 4

1

从 pojo 开始。

public class Friend {
 private String name;
 private String phoneNo;
 private String email;

 /* getters & setters ommited */
}

然后以下将为您的文件生成一个列表作为列表。

BufferedReader in = null;
FileReader fr = null;
List<Friend> friends = new ArrayList<Friend>();
List<String> list = new ArrayList<String>();

try {
    fr = new FileReader("yourfile.txt");
    in = new BufferedReader(fr);
    String str;
    while ((str = in.readLine()) != null) {
        list.add(str);


        //If 3 rows then thats our data for this Friend
        if(list.size() == 3) {
           Friend f = new Friend();
           f.setName(list.get(0));
           f.setPhoneNo(list.get(1));
           f.setEmail(list.get(2));

           friends.add(f);
           list.removeAll();
        }
    }
} catch (Exception e) {
    e.printStackTrace();
} finally {
    in.close();
    fr.close();
}
于 2012-11-27T11:15:45.363 回答
0

我知道使用列表是必要的。只是不确定如何让 Java 读取文件

有关文件 IO 的信息,请参阅Java 教程

您可以使用 line reader 从文件中读取每一行,并使用 regex 或用逗号拆分来获取姓名、电话等。

剩下的就是简单的算法

  1. 读取文件
  2. 遍历文件的每一行
  3. 拆分电话等的线路值。
于 2012-11-27T11:17:26.800 回答
0

按照教程

http://www.roseindia.net/java/beginners/java-read-file-line-by-line.shtml

然后根据文件的结构将您输入的行拆分为名称/电话。然后使用该信息生成一个新的 Friend 对象并将其存储在您的列表中

编辑:你能发布你的文件结构吗?

于 2012-11-27T11:15:56.567 回答
0

用 Json 试试。

检查此链接,您将看到从 json 文件中读取是多么简单:

http://answers.oreilly.com/topic/257-how-to-parse-json-in-java/

如果您选中此项,则必须为您的朋友创建一个类:

  public class Friend {

        String name;
        String surname;
        String phone;

         public Friend(String name, String surname, String phone){
              this.name = name;
              this.surname = surname;
              this.phone = phone;
         }


        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSurname() {
            return surname;
        }
        public void setSurname(String surname) {
            this.surname = surname;
        }
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }


    }

In the class where you parsing the file you can do it like this:

ArrayList<Fried> friends = new ArrayList<Friends>();

// her json parsing


Friend fr = new Friend("Name you parst from Json", .... , ....);
friends.add(fr);

循环执行此操作,您将获得包含 json-file 内容的 ArrayList

于 2012-11-27T11:13:12.393 回答