Problem das Eclipse Ausgabe nicht in Datei schreibt, sondern ausgibt auf "Konsole"

  • Ich habe einen XML Exporter, der eine XML Datei machen soll, und dort dann die Sachen rein schreibt. Das Problem ist, dass er nicht die Datei macht, und auch nicht die Sachen rein schreibt (wenn man die Datei manuell erstellt), sondern sie einfach ausgibt. Habe es auch mit cmd probiert und nicht nur mit Eclipse, aber dort habe ich ebenfalls das selbe Problem.

  • Wenn ich die Methode main auf Folgendes umbaue:

    Code
    static public void main(String [] args ) throws Exception
    {
        Xml_Exporter_Test XD = new Xml_Exporter_Test();
        XD.doc = XD.neuesDoc();
        XD.printDOMTree(XD.doc);
    }

    kann ich das Ganze einwandfrei kompilieren und ausführen (Java 1.6.0, build 1.6.0-b105, Ubuntu Linux). Es wird eine Datei ausgabe.xml erzeugt mit folgendem Inhalt:

    Code
    <
    sonnet type="Shakespearean">[author: null]
    [title: null]
    [lines: null]
    </sonnet>
  • Wenn ich die Methode main auf Folgendes umbaue
    kann ich das Ganze einwandfrei kompilieren und ausführen

    Ja so geht es, aber er macht den XML Code nicht richtig in der Datei. Wenn man es ohne FileWriter macht, dann geht es, aber mit lustigerweise nicht richtig! Also ich habe das jetzt so ohne FileWriter:


    Es rennt auch so gut, erzeugt den richtigen Code, wenn man ihn manuell in eine XML Datei gibt. Ich dachte mir, wenn man es mit nem FileWriter macht, dann spart man sich das kopieren. Deswegen habe ich dann eben wieder den File Writer eingebaut, aber habe das Problem wie oben beim Code von dir, dass er dann nicht alles in die Datei schreibt warum auch immer, obwohl am Code eigentlich nicht wirklich was fundamentales geändert wurde. Habe jetzt den Writer eingebaut, und alle System.out passend umändern lassen, damit er es in die Datei schreibt (die er auch richtig erzeugt, aber eben wie oben bei dir, nur halbert schreibt)

  • Ser's ..

    Ist klar, daß das nicht funktionieren kann.
    Du erzeugst bei jedem rekursiven Aufruf von printDOMTree das Outputfile neu, damit kommt nur die letzte Rekursionsstufe ins File und nicht der gesamte Baum.

    Besser:


    Trading for a living [equities,futures,forex]

  • Ser's ..

    Ist klar, daß das nicht funktionieren kann.
    Du erzeugst bei jedem rekursiven Aufruf von printDOMTree das Outputfile neu, damit kommt nur die letzte Rekursionsstufe ins File und nicht der gesamte Baum.

    VIELEN VIELEN DANK :thumb: Funktioniert jetzt echt super :applaus::bounce:

  • Ich habe die Datei noch ein wenig umgeändert, und wollte jetzt es so machen, da der XML Exporter ja eigentlich an ein Hauptprogramm "gehängt" wird, um von dort die geschickten Daten zu exportieren in einer XML Datei das machen.

    Das Problem ist, dass ich seit Tagen dran sitze, und egal wie ich es mache, es einfach net will, und die die ich kenne und sich mit Java auskennen, auch net weiter wussten.

    Also die Grundidee ist einfach, dass man den Exporter mit Argumenten aufruft, und eben die Argumente die Werte sind, die im XML exportiert und gesichert werden sollen. Das Problem ist aber, dass er in neuesDoc die Argumente ja nicht mehr "kennt" und man deswegen aus der Main sie hinbekommen muss. Ich dachte mir, dass macht man einfach, in dem man von neuesDoc einfach den Methodenkopf ändert, dort eben die ganzen Argumente dann übergibt, die dann eben in neuesDoc weiter verwendet werden.

    Ansich funktioniert das super, nur das Problem ist, dass er so nur "fixe" Variablen annimmt, also Variable (in dem Fall Strings) die ich im Code mit "1" angebe, aber wenn ich z.b. einer Variable den String 1 zuweiße, und dann eben mit der Variable weiter arbeite, geht das nicht.

    Genauso kann ich warum auch immer die Argumente nicht einlesen, da er dann immer einen Fehler hat. Somit kann ich leider auch nicht, warum auch immer, da ich eben die Argumente nicht einlesen kann, aus dem Hauptprogramm mithilfe von Argumenten die Strings die mit dem XML Exporter gespeichert werden sollen weiterarbeiten...

    Deswegen würde ich gerne wissen, warum ich nicht mit String IP = args [0]; das Argument einlesen kann, und warum ich nicht bei XD.doc = XD.neuesDoc("1", "2", "3", "4" ,"5", "6" ) auch Variable verwenden kann bzw wie ich das Problem sonst noch lösen könnte...

  • Zitat


    und die die ich kenne und sich mit Java auskennen, auch net weiter wussten.

    Widerspruch !
    Entweder oder ;)

    Verstehe das Problem nicht wirklich ...

    Zitat


    Genauso kann ich warum auch immer die Argumente nicht einlesen, da er dann immer einen Fehler hat

    Warum nicht ?
    Welcher Fehler ?

    Dieser Code hier geht problemlos:

    Aber wiegesagt, ich bin mir nicht sicher was nicht funktioniert und wie es funktionieren sollte ...

    mfg, lb


    Trading for a living [equities,futures,forex]

  • Ja so geht es jetzt! Vielen Dank! Habe es ohne Schleife gemacht, und dann wollte er eben die args nicht nehmen. Wobei mir jetzt erst einfiel, man könnte das noch eleganter machen, mit nem Konstruktor, der dann alles aufruft, und man somit main und die args nicht braucht... glaube werde es so machen... aber vielen dank für die Hilfe, beim nächsten mal weiß ich dann das es so geht!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!