De la charge .fichier yml dans hashmaps à l'aide de snakeyaml (import junit bibliothèque)

Je suis en train de charger opencv .fichier yml dans arrayLists dire, de projection et d'étiquettes. J'ai créer ces trois arraylists et je suis en train d'analyser en eux les éléments de la .fichier yml. J'ai trouvé snakeYAML documentation . Cependant, je n'ai pas trouver un moyen de le faire correctement. Je suis en train d'utiliser

  final String fileName = "train.yml";
  opencvmatrix mat = new opencvmatrix(); 
  Yaml yaml = new Yaml();

  try {
     InputStream ios = new FileInputStream(new File(fileName));

     //Parse the YAML file and return the output as a series of Maps and Lists
     Map<String,Object> result = (Map<String,Object>)yaml.load(ios);
     System.out.println(result.toString());
     Collection<Object> file = result.values();



  } catch (Exception e) {
     e.printStackTrace();
  }

}

Je reçois comme une erreur suivants:

Exception in thread "main" while scanning a directive
in 'reader', line 1, column 1:
%YAML:1.0
^
expected alphabetic or numeric character, but found :(58)
in 'reader', line 1, column 6:
%YAML:1.0
     ^

at org.yaml.snakeyaml.scanner.ScannerImpl.scanDirectiveName(ScannerImpl.java:1269)
at org.yaml.snakeyaml.scanner.ScannerImpl.scanDirective(ScannerImpl.java:1221)
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchDirective(ScannerImpl.java:614)
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:306)
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226)
at org.yaml.snakeyaml.parser.ParserImpl$ParseImplicitDocumentStart.produce(ParserImpl.java:195)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:104)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:412)
at projectCV.main(projectCV.java:33)
Java Result: 1

EDIT1: j'ai remarqué que mes problèmes se dresse pour assertEquals qui est une fonction de la classe assert partie de junit bibliothèque. Je ne peux pas trouver un moyen d'importer correctement à la bibliothèque de mon classpath. Je suis en train de deux choses, de les télécharger .jar fichier et AJOUTER/dossier Jar et dans les propriétés du projet->bibliothèques->compiler des tests-> add library -> Junit 4.10. Mais je suis toujours avoir des problèmes.

EDIT2: j'ai modifier le fichier YAML 1,0 à YAML 1.1, mais rien ne change. Je suis encore à essayer de trouver une façon de lire le fichier yml.

       final String fileName = "train.yml";
  opencvmatrix mat = new opencvmatrix(); 
  Yaml yaml = new Yaml();

  try {
     InputStream ios = new FileInputStream(new File(fileName));

     //Parse the YAML file and return the output as a series of Maps and Lists
     Map<String,Object> result = (Map<String,Object>)yaml.load(ios);
     System.out.println(result.toString());
     Collection<Object> file = result.values();



  } catch (Exception e) {
     e.printStackTrace();
  }

}

Lorsque j'essaie d'exécuter ce code j'obtiens:

Exception in thread "main" Can't construct a java object for tag:yaml.org,2002:opencv- 
matrix; exception=Class not found: opencv-matrix
in 'reader', line 3, column 7:
mean: !!opencv-matrix
      ^

EDIT3: j'ai créé une classe opencvmatrix (comme le nom de .yml propriétés), avec les propriétés de lignes, de colonnes, dt, liste de tableaux de données. L' .fichier yml est comme:

num_components: 19
num_components: 19
mean: !!opencvmatrix
rows: 1
cols: 3600
dt: d
data: [ 9.6842105263157890e+01, 1.0257894736842104e+02,
1.0557894736842104e+02, 1.0794736842105263e+02,
1.1752631578947367e+02, 1.1631578947368421e+02,
1.1084210526315789e+02, 1.0373684210526315e+02,
1.0052631578947368e+02, 9.5263157894736835e+01,
9.0421052631578945e+01, 8.5631578947368411e+01,
7.8684210526315780e+01, 7.2105263157894740e+01,
6.9315789473684205e+01, 6.9105263157894740e+01,
7.1052631578947370e+01, 7.9631578947368411e+01,
9.0894736842105260e+01, 1.0121052631578947e+02,
....]
projections:
- !!opencvmatrix
rows: 1
cols: 19
dt: d
data: [ 1.6852352677811423e+03, -1.0112905042030820e+03,
-1.3152188243875064e+03, 4.8298990155435700e+02,
9.1980535900698968e+01, 6.5624763621018792e+02,
-1.2380244625181117e+03, -1.8800931631152707e+02,
-4.1473232893431384e+02, 5.7197035514178856e+02,
4.9990276749703435e+02, 4.9062987890888604e+02,
6.1928710580829818e+02, -1.2842392693864540e+03,
2.4907719466932619e+01, 8.0299588479341844e+02,
1.1621501008120421e+02, 1.0410492864645674e+02,
8.5302163830384785e+01 ]
- !!opencvmatrix
rows: 1
cols: 19
dt: d
data: [ -1.0313663745467784e+03, 1.9900404646205566e+03,
-1.2844533156050284e+02, -4.3700867528097513e+02,
6.6145551346834259e+02, -2.0562483671734990e+03,
-1.9643774942432364e+02, 4.9329679854416281e+02,
-2.0003326324501427e+02, 1.0737995038485865e+03,
5.4161214984553695e+01, 4.7932826490658994e+02,
8.6307152262273064e+02, 6.7413046532276610e+02,
6.3835284527337114e+02, 4.1663169960066972e+02,
3.5883912817427905e+01, -1.2935687563770381e+02,
-1.6471877227400194e+03 ]
...
labels: !!opencvmatrix
rows: 1
cols: 19
dt: i
data: [ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3 ]

Maintenant sans changer le code principal, je reçois l'erreur suivante:

   Can't construct a java object for tag:yaml.org,2002:opencvmatrix; exception=No single
argument constructor found for class opencvmatrix
in 'reader', line 1, column 7:
mean: !!opencvmatrix
^

OriginalL'auteur snake plissken | 2014-01-15