Skip to content

Latest commit

 

History

History
85 lines (63 loc) · 2.81 KB

import.adoc

File metadata and controls

85 lines (63 loc) · 2.81 KB

Der erste Import

Wenn du eine Datei wie z.B. die musterdatei_041222.txt von www.gdv-online.de importieren willst, schau am besten das Main-Programm an. Dort wird eine beliebige Datei importiert (Option "-import"), als XML (Option "-xml") ausgegeben und anschliessend validiert (Option "-validate").

Und hier jetzt der Import:

Datenpaket datenpaket = new Datenpaket();
datenpaket.importFrom(url);

Neben dem Input über eine URL wird auch der Import einer Datein, von einem InputStream oder Reader unterstützt.

Iterieren über die einzelnen Sätze

Wenn du wissen willst, wie du nach einem Import über die einzelnen Sätze interieren kannst, schau die ram besten die Datenpaket-Klasse n, wie die einzelnen Datensaetze in der export-Methode rausgeschrieben werden:

for (Iterator<Datensatz> iterator = datensaetze.iterator(); iterator.hasNext();) {
    Datensatz datensatz = iterator.next();
    datensatz.export(writer);
}

Zugriff auf einzelne Felder

Über einen Satz oder Datensatz kommst du an die einen einzelnen Felder ran. Gib dazu den Namen des Feldes an (alternativ kannst du auch über seine Byte-Adresse innerhalb eines Records gehen):

Feld absenderFeld = vorsatz.getFeld(Bezeichner.of("Absender"));

Für die meisten Bezeichner existiert in Bezeichner eine Konstante, die dir dabei hilft, Schreibfehler zu vermeiden:

Feld absenderFeld = vorsatz.getFeld(Bezeichner.ABSENDER);

(siehe auch testSetAbsender()-Methode in VorsatzTest).

Weitere Importe

Seit 0.9.2 kannst du mehrere Datenpakete über einen InputStream oder Reader importieren:

List<Datenpaket> datenpakete = new ArrayList<Datenpaket>();
while (true) {
    Datenpaket paket = new Datenpaket();
    try {
        paket.importFrom(inputStream);
        datenpakete.add(paket);
    } catch (EOFException ex) {
        log.info("EOF nach " + datenpakete.size() + " Datenpaketen erreicht.");
        break;
    }
}

Soll nur ein einzelner Datensatz importiert werden, kann dies direkt ueber die Datensatz-Klasse erfolgen:

Datensatz satz100 = SatzRegistry.getInstance().getDatensatz(100);
satz100.importFrom(file);

Dieses und weitere Beispiele befinden sich in ImportExport.