Skip to content

Instantly share code, notes, and snippets.

@JunNakamura
Last active July 26, 2017 01:23
Show Gist options
  • Save JunNakamura/a8e9cd35d04f33586778 to your computer and use it in GitHub Desktop.
Save JunNakamura/a8e9cd35d04f33586778 to your computer and use it in GitHub Desktop.

Revisions

  1. JunNakamura revised this gist Jul 26, 2017. No changes.
  2. Jun Nakamura created this gist Mar 4, 2016.
    18 changes: 18 additions & 0 deletions file0.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,18 @@
    class User {
    /**
    * ユーザID
    */
    private String id;

    /**
    * ユーザ名
    */
    private String name;

    /**
    * 削除フラグ
    */
    private boolean deleted;

    /* 中略 */
    }
    12 changes: 12 additions & 0 deletions file1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,12 @@
    // サンプルなので、guavaつかってそれっぽいのを作成
    // 実際には設定ファイルなどから生成をするのを想定
    Map<String,String> converter = ImmutableMap.Builder()
    .put("ユーザID", "id")
    .put("ユーザ名", "name")
    .put("削除フラグ", "deleted")
    .build();

    public String[] toPropertyHeader(String[] header, Map<String,String> converter) {
    /* converterをつかって、和名をカラム名に変化したarrayを生成 */
    }

    14 changes: 14 additions & 0 deletions file3.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    File file = new File("user.csv");
    try(ICsvBeanReader beanReader = new CsvMapReader(new FileReader(file), CsvPreference.EXCEL_PREFERENCE)) {
    String[] header = beanReader .getHeader(true); // CSVの和名ヘッダーを取得
    String[] propertyHeader = toPropertyHeader(header, converter); //和名ヘッダーをカラム名ヘッダーに変換

    User user;
    while((user= beanReader .read(User.class, propertyHeader)) != null) {
    Logger.info("user {}", user);
    }
    } catch (Exception e) {
    Logger.error("reading is failed.", e);
    }


    1 change: 1 addition & 0 deletions file4.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    customerNo,firstName,lastName,birthDate,mailingAddress,married,numberOfKids,favouriteQuote,email,loyaltyPoints
    3 changes: 3 additions & 0 deletions user.csv
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,3 @@
    ユーザID,ユーザ名,削除フラグ
    001,ユーザその1,false
    002,ユーザ2,true