USQ91:
私は、Java 8のストリームを使用してオブジェクトに渡されるパラメータをキャプチャするファイルを読み込むしようとしています。
ファイル形式は次のとおりです。
10 AA
15 BB
20 CC
オブジェクトの同じ数が行数として作成する必要があり、オブジェクトは、これらのパラメータを取ります。
例えば、オブジェクトA =新しいオブジェクト(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);
}
}
チャールズDowbecki:
あなたが持っていると仮定すると:
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);