Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将文本文件解析为对象_Java - Fatal编程技术网

Java 将文本文件解析为对象

Java 将文本文件解析为对象,java,Java,我几乎没有相同类型的文本文件 name: Michel; race: Man; age: 44; 如何解析这些值以列出字符 public class Character { private String name; private String race; private String age; } 您可以使用BufferedReader、FileReader或Scanner对象来读取Java中的txt文件。这取决于你想用哪一个来实现它的功能 您可以使用它们来迭代t

我几乎没有相同类型的文本文件

name: Michel;
race: Man;
age: 44;
如何解析这些值以列出字符

public class Character {

    private String name;
    private String race;
    private String age;
}

您可以使用BufferedReader、FileReader或Scanner对象来读取Java中的txt文件。这取决于你想用哪一个来实现它的功能

您可以使用它们来迭代txt文件中的槽行,并且可以将读取的内容放入字符串中。然后可以将该stringvalue分配给objectvariables


一个快速的谷歌把我带到了这个网站,它用代码示例解释了完整的方法:

在这里添加一个带有更改名称类的字符

List<Person> personList = new ArrayList<>();
        BufferedReader br = new BufferedReader(new InputStreamReader(
                new FileInputStream(String.valueOf(path))));
        String line;
        String name = null;
        String race = null;
        String age = null;
        while ((line = br.readLine()) != null) {
            if (line.contains("name:")) {
                    name = line.substring(6, line.length() - 1);
            }
            if (line.contains("race:")) {
                    race = line.substring(6, line.length() - 1);
            }
            if (line.contains("age:")) {
                    age = line.substring(5, line.length() - 1);
            }
        }
        Person person = new Person();
        person.setName(name);
        person.setRace(race);
        person.setAge(age);
        personList.add(person);
        return personList;
List personList=new ArrayList();
BufferedReader br=新的BufferedReader(新的InputStreamReader(
新文件输入流(String.valueOf(path));
弦线;
字符串名称=null;
字符串race=null;
字符串年龄=空;
而((line=br.readLine())!=null){
如果(第行包含(“名称:”)){
name=line.substring(6,line.length()-1);
}
if(第行包含(“种族:”){
race=line.substring(6,line.length()-1);
}
如果(第行包含(“年龄:”){
年龄=行.子字符串(5,行.长度()-1);
}
}
Person=新人();
person.setName(name);
人.种族(种族);
人.体位(年龄);
personList.add(person);
回归人格;

学习如何用Java解析文本文件,那么剩下的应该很容易。当你阅读每一行并在
上拆分或删除
时,你会遇到任何特定的问题?请注意,已经有一个名为
Java.lang.Character
的标准Java类。使用相同的名称
字符
很容易导致错误消息混淆;最好给你的类起一个不同的名字。你的文本文件类似于YAML。如果你想使用这种格式,有一些很棒的库。找到他们。否则,如果格式规定每一行都是新数据,则可以使用
BufferedReader
Scanner
逐行读取。或者您可以阅读全部内容并按
拆分