Zum Inhalt springen

Warum geht das nicht?


Empfohlene Beiträge

Geschrieben

Ich werde noch verrückt! Ich finde den Fehler einfach nicht! Warum schreibt das Programm nicht in die Datei rein???

Der Quellcode:

public HostTransfer(String host) {

int rc;

try {

File fehler = new File("C:\\", "fehler.txt");

FileWriter fw = new FileWriter(fehler);

PrintWriter pw = new PrintWriter(fw);

rc = NetConnection.getReturnCode(host);

//if (rc == 2 || rc == 4)

pw.println(host);

} catch (IOException p) {

System.out.println("Fehler in HostTransfer.class: " + p);

}

}

Ich habe sicher was vergessen, aber ich komme nicht drauf! Die Datei fehler.txt wird erstellt, aber die Hostnamen werden nicht in diese geschrieben... ich gebe mir die Kugel :(

Geschrieben

Okay, ich weiss es jetzt, was falsch ist (nur wie ich das Problem löse weiss ich noch immer nicht) ich habe in der "Java Developer Connection" nachgeschaut und da war ein Post mit genau diesem Problem. Das ganze liegt an dem daran, dass das Programm als Thread mehrere Male aufgerufen wird, dabei aber immer die selbe Datei öffnet, oder so ähnlich.

Weiss jemand wie ich das umgehen kann?

Geschrieben

hmmm java.io.File hat ne Methode canWrite(), eigentlich müßtest du nur so lange loopen, bis die true zurückgibt. Allerdings mußt du dann noch dafür sorgen, dass am ende des File-Zugriffs auch der Stream geschlossen wird.

Das könnte funktionieren - ist allerdings nicht getestet.

Oder aber du schreibst dir eine Art "Logger", der dann die Ausgabe übernimmt. Das muss dann ein Singelton sein, damit er auch der einzige ist, der in die Datei schreibt.

Geschrieben

Hast du es schonmal mit einem pw.close() probiert?

Es kann sein, dass einer der Streams puffert und dass erst ein flush() benötigt wird, damit er auch was schreibt (wird von close() auch aufgerufen). Oder er benötigt ein EOF, das wird aber erst geschrieben, wenn du close() aufrufst. Beide Probleme kannst du damit erschlagen. (Ausserdem ist es nicht besonders von Vorteil, wenn noch ein Programm schreibend die Datei geöffnet hat.)

Gruß und hth

Hardi

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...