Java ゲーム作成 〜データセットを作る2(Java Batch) 〜

前回作成した、中途半端な表を完成させるのにはとても時間がかかるので、プログラムで作成することにしました。

そして、作ってみました。

その1

その2

プログラムの設計

前回は概要だけ記載しました。
しかし、このままでは意味がわからないので、下にまとめます。

設計開始

まずINとOUTを決めます。

IN: ファイルのパス
OUT: CSVファイル(書き出し)

そして、実装していきますが、はじめにテストケースを作成します。

@Test
public void testReadFile() {
    String path = "resources/csv/materialCsv/1.Asia.csv";
    target = new CSVReader();
    List<String> list = null;
    try {
        list = target.readCSVAddID(path, null);
    } catch(Exception e) {
        e.printStackTrace();
        fail();
    }
    assertNotNull(list);
    assertEquals(25, list.size());
    assertEquals(2, list.get(0).split(",").length);
}

対象のメソッド「readCSVAddID()」の第二引数は読み込んだファイルのデータにインデックスを追加するためにつけています。
そして、インデックスを追加しないときは「null」にするという仕様にしました。

テスト対象になる「CSVReader」が実装クラスです。

そして、実装したい処理をどこに書くのか?これは作成するメソッドに書きます。
なので、テストで使用する「readCSVAddID()」はメソッドの定義(中身が何もない状態)で作成します。

こんな感じです。細かい部分は実装した時の動画があるので下の動画をみていただくとわかりやすいと思います。

出力した結果

一応、CSVからマークダウンへの変換もJavaでやりました。
コードは下のような感じです。

public void convertCsvToMdTable(String path, String outPath, Integer index) throws Exception {
    List<String> csvList = this.readCSVAddID(path, index);
    PrintWriter write = null;
    try {
        write = new PrintWriter(new FileWriter(outPath));
        String sep = System.lineSeparator();
        for (String str : csvList) {
            str = "| " + str.replace(", ", " |") + " |";
            write.write(str + sep);
        }
    } catch(Exception e) {
        e.printStackTrace();
        throw e;
    } finally {
        write.close();
    }
}

1.アジア

ID CountryName AreaID
0 インド 1
1 インドネシア 1
2 カンボジア 1
3 シンガポール 1
4 スリランカ 1
5 タイ 1
6 韓国 1
7 中国 1
8 ネパール 1
9 パキスタン 1
10 バングラデシュ 1
11 東ティモール 1
12 フィリピン 1
13 ブータン 1
14 ブルネイ 1
15 ベトナム 1
16 マレーシア 1
17 ミャンマー 1
18 モルディブ 1
19 モンゴル 1
20 ラオス 1
21 北朝鮮 1
22 台湾 1
23 香港 1
24 マカオ 1

2.大洋州

ID CountryName AreaID
0 オーストラリア 2
1 キリバス 2
2 クック諸島 2
3 サモア 2
4 ソロモン諸島 2
5 ツバル 2
6 トンガ 2
7 ナウル 2
8 ニウエ 2
9 ニュージーランド 2
10 バヌアツ 2
11 パプアニューギニア 2
12 パラオ 2
13 フィジー 2
14 マーシャル 2
15 ミクロネシア 2

3.アメリカ大陸

ID CountryName AreaID
0 米国 3
1 カナダ 3
2 アルゼンチン 3
3 アンティグア・バーブーダ 3
4 ウルグアイ 3
5 エクアドル 3
6 エルサルバドル 3
7 ガイアナ 3
8 キューバ 3
9 グアテマラ 3
10 グレナダ 3
11 コスタリカ 3
12 コロンビア 3
13 ジャマイカ 3
14 スリナム 3
15 セントビンセントおよびグレナディーン諸島 3
16 セントクリストファー・ネービス 3
17 セントルシア 3
18 チリ 3
19 ドミニカ国 3
20 ドミニカ共和国 3
21 トリニダード・トバゴ 3
22 ニカラグア 3
23 ハイチ 3
24 パナマ 3
25 バハマ 3
26 パラグアイ 3
27 バルバドス 3
28 ブラジル 3
29 ベネズエラ 3
30 ベリーズ 3
31 ペルー 3
32 ボリビア 3
33 ホンジュラス 3
34 メキシコ 3

4.ヨーロッパ

ID CountryName AreaID
0 アイスランド 4
1 アイルランド 4
2 アゼルバイジャン 4
3 アルバニア 4
4 アルメニア 4
5 アンドラ 4
6 イタリア 4
7 ウクライナ 4
8 ウズベキスタン 4
9 英国 4
10 エストニア 4
11 オーストリア 4
12 オランダ 4
13 カザフスタン 4
14 北マケドニア 4
15 キプロス 4
16 ギリシャ 4
17 キルギス 4
18 クロアチア 4
19 コソボ 4
20 サンマリノ 4
21 ジョージア 4
22 スイス 4
23 スウェーデン 4
24 スペイン 4
25 スロバキア 4
26 スロベニア 4
27 セルビア 4
28 タジキスタン 4
29 チェコ 4
30 デンマーク 4
31 ドイツ 4
32 トルクメニスタン 4
33 ノルウェー 4
34 バチカン 4
35 ハンガリー 4
36 フィンランド 4
37 フランス 4
38 ブルガリア 4
39 ベラルーシ 4
40 ベルギー 4
41 ポーランド 4
42 ボスニア・ヘルツェゴビナ 4
43 ポルトガル 4
44 マルタ 4
45 モナコ 4
46 モルドバ 4
47 モンテネグロ 4
48 ラトビア 4
49 リヒテンシュタイン 4
50 リトアニア 4
51 ルーマニア 4
52 ルクセンブルク 4
53 ロシア 4

5.アフリカ

ID CountryName AreaID
0 アルジェリア 5
1 アンゴラ 5
2 ウガンダ 5
3 エジプト 5
4 エスワティニ 5
5 エチオピア 5
6 エリトリア 5
7 ガーナ 5
8 カーボベルデ 5
9 ガボン 5
10 カメルーン 5
11 ガンビア 5
12 ギニア 5
13 ギニアビサウ 5
14 ケニア 5
15 コートジボワール 5
16 コモロ 5
17 コンゴ共和国 5
18 コンゴ民主共和国 5
19 サントメ・プリンシペ 5
20 ザンビア 5
21 シエラレオネ 5
22 ジブチ 5
23 ジンバブエ 5
24 スーダン 5
25 セーシェル 5
26 赤道ギニア 5
27 セネガル 5
28 ソマリア 5
29 タンザニア 5
30 チャド 5
31 中央アフリカ 5
32 チュニジア 5
33 トーゴ 5
34 ナイジェリア 5
35 ナミビア 5
36 ニジェール 5
37 ブルキナファソ 5
38 ブルンジ 5
39 ベナン 5
40 ボツワナ 5
41 マダガスカル 5
42 マラウイ 5
43 マリ 5
44 南アフリカ 5
45 南スーダン 5
46 モザンビーク 5
47 モーリシャス 5
48 モーリタニア 5
49 モロッコ 5
50 リビア 5
51 リベリア 5
52 ルワンダ 5
53 レソト 5

関連ページ

Java Basic

  1. Java Basic Level 1 Hello Java
  2. Java Basic Level2 Arithmetic Calculate
  3. Java Basic Level3 About String class
  4. Java Basic Level 4Boolean
  5. Java Basic Level 5If Statement
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 Traning of If statement
  8. Java Basic Level8 How to use for statement
  9. Java Basic Level 8.5 Array
  10. Java Basic Level 9Training of for statement
  11. Java Basic Level 10 While statement 
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1
  17. Java Basic JUnit 〜テストスイートの作り方〜


投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す