ste*_*337 3 java java-8 java-stream
我有一个文件,其中一些数据用分号分隔.我正在尝试构建一个流,它将逐行读取文件,将每列数据分开并将其映射到新对象.
data.txt中:
John;Smith;42;shopassistant
Clara;Lefleur;24;programmer
Run Code Online (Sandbox Code Playgroud)
Person.class:
public class Person{
String name;
String lastName;
int age;
String job;
}
Run Code Online (Sandbox Code Playgroud)
我从这样的事情开始:
List<Person> people = Files.lines(Paths.get("src/data.txt"))....
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
您可以像这样使用地图:
List<Person> people = Files.lines(Paths.get("src/data.txt"))
.map(p -> p.split(";"))//split each line with ';'
.map(p -> new Person(p[0], p[1], Integer.valueOf(p[2]), p[3]))//create a new Person
.collect(Collectors.toList());//then collect the result
Run Code Online (Sandbox Code Playgroud)
确保您有一个包含该信息的构造函数:
public Person(String name, String lastName, int age, String job) {
Run Code Online (Sandbox Code Playgroud)