如何解决如何在java中为文件定义值对象
我编写了一个程序,该程序创建了 3 个 .txt 格式的文件并将一些数据写入其中。 现在我被要求为这些文件定义一个值对象,并覆盖 toString 方法,然后当我读取文件时将它们设置为值对象。 现在我完全糊涂了,不知道从哪里开始。 预先感谢您的帮助
解决方法
如果你想首先从文本文件创建对象,你要做的是读取文件。 Java API 中有许多可用的类可用于读取文件:BufferedReader
、FileReader
等。
您将创建的对象数量取决于文件中的行数。例如,如果您有一个包含以下内容的文件
PersonName1,PersonSurname1,20
PersonName2,PersonSurname2,22
PersonName3,PersonSurname3,23
假设这些行代表一些用户的姓名和年龄
您首先需要做的是创建一个类来表示这个对象,正如我们在文本文件中看到的,该对象将包含三个参数,因此您创建了一个具有三个属性的类
public class Person {
private String name;
private String surname;
private Integer age;
public Person(String name,String surname,Integer age) {
this.name = name;
this.surname = surname;
this.age = age;
}
@Override
public String toString() {
return "NAME : " + name + " : " + surname;
}
现在是读取部分,为了读取文件,我们将使用 BufferedReader
,我们通过在每次迭代时用逗号 (,) 分割行来读取文件的每一行
String [] parameters = line.split(",");
这个字符串数组现在将代表我们的用户属性,以便我们访问它
String name = parameters[0];
String surname = parameters[1];
Integer age = Integer.parseInt(parameters[2]);
现在我们每次迭代都创建一个 Person 对象并将其添加到列表中
Person p = new Person(name,surname,age);
list.add(p);
示例
BufferedReader bufferedReader = new BufferedReader(new FileReader("test.txt"));
List<Person> list = new ArrayList<>();
String line = null;
while((line = bufferedReader.readLine())!=null){
try {
String[] parameters = line.split(",");
if(parameters.length == 3) {
String name = parameters[0];
String surname = parameters[1];
Integer age = Integer.parseInt(parameters[2]);
Person p = new Person(name,age);
list.add(p);
}
}catch (NumberFormatException e){
}
}
System.out.println("Object created from the file");
list.stream().forEach(System.out::println);
输出
NAME : PersonName1 : PersonSurname1
NAME : PersonName2 : PersonSurname2
NAME : PersonName3 : PersonSurname3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。