2012年12月1日土曜日

一人Advent Calendar1日目(JavaでYamlファイル読み込み)

何かきっかけがないとブログを更新しないんで一人Advent Calendarをやってみることにしました

普通のAdventCalendarだとテーマが決まってたりするんですけど一人でやるんでテーマも特にないです。
目標は継続して更新する癖を付けること

1日から頑張ったら途中で辞めるのが目に見えてるので1日目は控えめにJavaでYamlファイルを読み込みます

Yamlファイルはマークアップの形式の1つでもとはRubyで使われていたとか
XMLの変わりはJSONかYamlのどちらかになると思ってます。
YamlはJSONよりも様々な形式に対応しているのでYamlの方が少し複雑な印象

JavaでYamlを解析して読み込み時は「JYaml」というライブラリは使います
公式サイトの「Click here」からjarファイルをダウロードして読み込みをしたいプロジェクトのビルドパスに配置します

ちなみに今回読み込んでみるYamlファイルはこの2つで両方共プロジェクトのルートにおいてあります。
test.yml
- hoge
- fuga
- mofu
-
  - fufu1
  - fufu2

test2.yml
- 1
- apple
- orange

で実際に読み込むプログラムがこれ ReadYaml.java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;

import org.ho.yaml.Yaml;

public class ReadYaml {

 public static void main(String[] args) {
  try {
   List array = (ArrayList) Yaml.load(new File(
     "test.yml"));
   System.out.println(array);
   array = (ArrayList) Yaml.load(new File("test2.yml"));
   System.out.println(array);
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }
 }
}
今回のYamlファイルはリスト構造なので読み込むときもリストで読み込んでます。
でリストの中にMapやまたListが入ってるのかわからないのでObjectのリストになってます。
読み込んだらあとは表示しているだけです。

出力
[hoge, fuga, mofu, [fufu1, fufu2]]
[1, apple, orange]

1日目はただ読み込んだだけで終わりです。
明日はリスト以外の形式も読み込んでみたりと引き続きYamlと弄ることになる予定



なんかシンタックスハイライトが機能してないみたいなんで時間ある時に直しておきます

0 件のコメント:

コメントを投稿