标签:java-8 java-stream oop file-io java
我正在尝试读取文件以捕获要使用Java 8流传递给对象的参数.
文件格式为:
10 AA
15 BB
20 CC
必须创建与行数相同数量的对象,这些对象采用这些参数.
例如Object a = new Object(10,AA).
该文件将始终最多包含3行.
我已经读完文件,检查它是否以数字开头,将其分割在新行上,并将每一行放入String []列表中.
List<String[]> input = new ArrayList<>();
try {
input = Files.lines(Paths.get("C:\\Users\\ubaid\\IntelliJ Workspace\\Bakery\\input.txt")).
filter(lines->Character.isDigit(lines.trim().charAt(0))).map(x-> x.split("\\r?\\n")).collect(Collectors.toList());
} catch (IOException e) {
e.printStackTrace();
}
for(String a[] : input){
for(String s : a){
System.out.println(s);
}
}
解决方法:
假设您有:
public class Type {
private int number;
private String text;
// constructor and other methods
}
文件格式正确:
List<Type> objs = Files.lines(path)
.map(s -> s.split(" "))
.map(arr -> new Type(Integer.parseInt(arr[0]), arr[1]))
.collect(Collectors.toList());
System.out.println(objs);
标签:java-8,java-stream,oop,file-io,java 来源: https://codeday.me/bug/20191108/2006206.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。