入力ファイルからのJava 8ストリームの複数のオブジェクトの作成

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);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=207414&siteId=1