javaanfänger Geschrieben 4. September 2002 Teilen Geschrieben 4. September 2002 Hi, ich habe folgendes Problem. Ich hoffe mir kann einer helfen. Ich will mit dem RandomAccessFile ans Ende einer Datei was schreib. Das geht auch. Aber er macht bei meinem Strings nach jedem Buchstaben ein Leerzeichen. Woran liegt das? Hier mein Quelltext: String f= "ModusTest.txt"; RandomAccessFile output = null; try { output = new RandomAccessFile(f,"rw"); output.seek(output.length()); output.writeChars(PropertyAuswahl.inhalt + "\n" ); } catch(IOException ioe) { System.err.println(ioe.getMessage()); } [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 4. September 2002 Teilen Geschrieben 4. September 2002 Kann mal jemand den Spaßvogel löschen oder zurechtweisen... @javaanfänger Du schreibst chars binär in eine Datei. Ein char belegt aber in Java 2 Bytes. Daher die Leerzeichen im Textmodus deines Editors. Wenn du Text in eine Datei schreiben willst, musst du aus dem String ein byte[] machen und dieses z.B. mit der Methode write in die Datei schreiben. output.write(PropertyAuswahl.inhalt.getBytes()); Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
aokieh Geschrieben 4. September 2002 Teilen Geschrieben 4. September 2002 Hallo, bin mir auch nicht mehr ganz sicher, aber mit writeUTF() kann man auf jedenfall Strings ans Ende der Datei schreiben. Sorry, wenn falsch. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
javaanfänger Geschrieben 4. September 2002 Autor Teilen Geschrieben 4. September 2002 writeChars(String s) das war in der api gestanden, deswegen wundere ich mich das es nicht funktioniert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
wir4undbilbo Geschrieben 5. September 2002 Teilen Geschrieben 5. September 2002 @JavaMaster (lächerlich) Ich hoffe du so schnell wie möglich aus diesem Forum entfernt wirst. Wenn du hier nur sonen Blödsinn schreiben willst,dann geh doch woanders hin. Immer diese Leute mit Penisneid. Schwere Kindheit ok aber wo ist das Niveau..? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
javaanfänger Geschrieben 5. September 2002 Autor Teilen Geschrieben 5. September 2002 Hi, wenn ich es mit der Zeile(output.write(PropertyAuswahl.inhalt.getBytes()) in die Datei schreibe. Bekomme ich folgendes in der Datei angezeigt [][][][]J[][][][][][] die [] sollen Vierecke sein. Sorry aber vielleicht stehe ich gerade auf dem schlau. Kann mir bitte nochmal wer helfen. Außer die Witzbolde. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 5. September 2002 Teilen Geschrieben 5. September 2002 Was für ein Object ist PropertyAuswahl.inhalt? Ich war jetzt die ganze Zeit davon ausgegangen, dass das ein String ist. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
javaanfänger Geschrieben 5. September 2002 Autor Teilen Geschrieben 5. September 2002 Das ist eine String da am Anfang der Klasse er gefüllt wird mit der Zeile: PropertyAuswahl.inhalt = (String) PropertyGui.auswahlcmb.getSelectedItem(); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
javaanfänger Geschrieben 5. September 2002 Autor Teilen Geschrieben 5. September 2002 Das ist die ganze Datei import java.io.*; import java.util.*; class Speichern { PrintWriter pw; public Speichern() { PropertyAuswahl.inhalt = (String) PropertyGui.auswahlcmb.getSelectedItem(); try { if (PropertyAuswahl.inhalt == "Modus") { String f= "ModusTest.txt"; RandomAccessFile output = null; try { output = new RandomAccessFile(f,"rw"); output.seek(output.length()); //output.writeUTF(PropertyAuswahl.inhalt + "\n" ); * ohne Leerzeichen aber mit andere Zeichen //output.writeChars(i + "\n" ); output.write(s.getBytes()); } catch(IOException ioe) { System.err.println(ioe.getMessage()); } } else { if (PropertyAuswahl.inhalt == "Ergebnistyp") { String f= "ErgebnistypTest.txt"; System.out.println(Hinzufuegen.vspeichern); Enumeration enum = Hinzufuegen.vspeichern.elements(); while(enum.hasMoreElements()) { try { pw = new PrintWriter(new FileWriter(f)); pw.println(enum.nextElement() + "=" + enum.nextElement()); pw.close(); } catch(IOException ioe) { System.err.println(ioe.getMessage()); } catch(NoSuchElementException nsee) { System.err.println(nsee.getMessage()); } } } else { if (PropertyAuswahl.inhalt == "Handbuch") { String f= "HandbuchTest.txt"; System.out.println(Hinzufuegen.vspeichern); Enumeration enum = Hinzufuegen.vspeichern.elements(); while(enum.hasMoreElements()) { try { pw = new PrintWriter(new FileWriter(f)); pw.println(enum.nextElement() + "=" + enum.nextElement()); pw.close(); } catch(IOException ioe) { System.err.println(ioe.getMessage()); } catch(NoSuchElementException nsee) { System.err.println(nsee.getMessage()); } } } else { System.out.println("Es konnte leider nicht gepeichert werden!"); } } } } catch(NullPointerException npe) { System.err.println(npe.getMessage()); } } } [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 5. September 2002 Teilen Geschrieben 5. September 2002 Original geschrieben von javaanfänger if (PropertyAuswahl.inhalt == "Modus") Wenn PropertyAuswahl.inhalt ein String ist, kann das nicht funktionieren. Objecte vergleicht man mit equals. Original geschrieben von javaanfänger output.write(s.getBytes()); Wo kommt denn nu auf einmal s her? Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
javaanfänger Geschrieben 5. September 2002 Autor Teilen Geschrieben 5. September 2002 nein, der vergleich funktioniert. Anstatt dem 's' müsste da auch Propert....inhalt stehen, war vorher nur eine Test mit einem anderem String Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 5. September 2002 Teilen Geschrieben 5. September 2002 Jau, hast recht der Vergleich funktioniert. Ich weiss zwar nicht warum aber egal. Dann kann ich dir aber auch nicht weiterhelfen. Bei mir wird der String geschrieben. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
javaanfänger Geschrieben 6. September 2002 Autor Teilen Geschrieben 6. September 2002 Guten Morgen, der Quelltext funktioniert jetzt, so das er den String schreibt. Ich will aber das er einen Zeilenumbruch macht , wenn ein String geschrieben worden ist. Aber den Zeilenumbruch macht er nicht. Ich habe schon versucht dem save String ein "\n" hinzu zu fügen aber das funktioniert leider nicht. Weil wen ich ein "\n" im String habe, gibt er den String aus ein [] aus in der Datei. Kann mir da bitte einer helfen. import java.io.*; import java.util.*; class Speichern { PrintWriter pw; String save; public Speichern() { PropertyAuswahl.inhalt = (String) PropertyGui.auswahlcmb.getSelectedItem(); String save = Hinzufuegen.wert + "=" + Hinzufuegen.beschreibung; try { if (PropertyAuswahl.inhalt == "Modus") { String f= "modus.properties"; RandomAccessFile output = null; try { output = new RandomAccessFile(f,"rw"); output.seek(output.length()); output.write(save.getBytes()); } catch(IOException ioe) { System.err.println(ioe.getMessage()); } } else { System.out.println("Es konnte leider nicht gepeichert werden!"); } } catch(NullPointerException npe) { System.err.println(npe.getMessage()); } } } [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.