Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Allgemeine Java-Programmierung > DOS Text als File schreiben
Antwort
 
Themen-Optionen
Alt 20.02.2005, 20:26   Nach oben    #1
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard BufferedWriter DOS Text

Hi, wollte mal Fragen, ob es möglich ist unter Java eine Datei als MS-DOS Text zu speichern. Also praktisch so, dass, wenn ein ö, ä, ü, ... darin vorkommt der Zeichensatz für MS-DOS verwendet wird.
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.02.2005, 20:53   Nach oben    #2
peschmae
Erfahrener Benutzer
 
Benutzerbild von peschmae
 
Registriert seit: 29.05.2004
Beiträge: 228
Standard

Bei den Writern hab ich da nichts gesehen (vielleicht auch nicht gut genug geguckt?) aber sonst gehts auf dem Umweg über die den OutputStreamWriter und einen darunterliegenden OutputStream. (Ist gar kein Umweg, der FileWriter machts genauso nur kannst du das dort nicht einstellen)

Dem OutputStreamWriter kannst du nämlich sagen was für eine Codierung er verwenden soll (jetzt musst du nur noch rausfinden was DOS da so merkwürdiges verwendet
Code:
OutputStreamWriter(OutputStream out, Charset cs)
          Create an OutputStreamWriter that uses the given charset.
http://java.sun.com/j2se/1.5.0/docs/api/java/io/OutputStreamWriter.html#OutputStreamWriter(java.io .OutputStream,%20java.nio.charset.Charset)

MfG Peschmä
__________________
Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM
"We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth
peschmae ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.02.2005, 20:56   Nach oben    #3
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Danke, werd ich mir mal anschauen
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.02.2005, 21:01   Nach oben    #4
Fuzzy
Gast
 
Beiträge: n/a
Standard

Die Character-Encodings sind auf folgender Seite aufgeführt (jedenfalls die für die Sun Java VM

http://java.sun.com/j2se/1.4.2/docs/...oding.doc.html

Wenn ich mich recht entsinne ist "Cp850" der korrekte Zeichensatz für MS-DOS. Der heute übliche Zeichensatz ist "windows-1252".
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.02.2005, 21:04   Nach oben    #5
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Danke für die Links! Hab heute keine Zeit mehr, ich schau mal ob ich morgen dazu komm, wenn's klappt post ich mal den Code! Nochmal Danke
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.02.2005, 21:20   Nach oben    #6
Fuzzy
Gast
 
Beiträge: n/a
Standard DOS Text als File schreiben

hier ein Beispielcode zum Schreiben von MS-DOS bzw. Windows Files:

Code:
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

public class MsDosWriterTest {
  public static void main(String[] args) throws Exception {
    // OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("C:/test"), "Cp850");
    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("C:/test"), "windows-1252");
    osw.write("Der Stößel kostet 20€");
    osw.close();
  }
}
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2005, 12:27   Nach oben    #7
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Danke, danke, danke! So viel hilfsbereitschaft ... Muss ich mich ja gar nicht mehr selbst bemühen .

Aber die Geschichte kann ich nicht mit nem BufferedWriter lösen oder? Sonst müsst ich nämlich meinen ganzen Code neu schreiben :mad: .
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2005, 12:30   Nach oben    #8
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Zitat:
Zitat von Hobbit_im_Blutrausch
Sonst müsst ich nämlich meinen ganzen Code neu schreiben
Und so etwas in einem Java-Forum .. schäm Dich *gg*

Sorry
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2005, 13:33   Nach oben    #9
Fuzzy
Gast
 
Beiträge: n/a
Standard

@Ben: wenn Du Dich schon lustig machst, kannst Du aus Ausgleich auch die Lösung angeben

Code:
public class MsDosWriterTest {
  public static void main(String[] args) throws Exception {
    // OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("C:/test"), "Cp850");
    BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(new FileOutputStream("C:/test"), "windows-1252"));
    bw.write("Der Stößel kostet 20€");
    bw.close();
  }
}
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2005, 16:40   Nach oben    #10
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Zitat:
Zitat von Ben
Zitat:
Zitat von Hobbit_im_Blutrausch
Sonst müsst ich nämlich meinen ganzen Code neu schreiben
Und so etwas in einem Java-Forum .. schäm Dich *gg*

Sorry
Naja, ein bisschen Spass muss sein :rolleyes: . Beschäftige mich noch net sehr lange mit den diversen Streams, obwohl ich zugeben muss, dass ich da hät selber draufkommen können .

@ Fuzzy vielen dank für den Wink mit dem Leuchtturm

[edit] Funktioniert übrigens prächtig!
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2005, 14:38   Nach oben    #11
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

So, und jetzt bräuchte ich das ganze nur noch als String. Bin natürlich auch wie immer für einen Weblink oder einen API-link dankbar, hab nur selber (mal wieder) nichts gefunden, bzw. nicht richtig gewusst, nach was ich suchen soll
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2005, 17:56   Nach oben    #12
peschmae
Erfahrener Benutzer
 
Benutzerbild von peschmae
 
Registriert seit: 29.05.2004
Beiträge: 228
Standard

Was brauchst du als String?

MfG Peschmä
__________________
Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM
"We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth
peschmae ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.02.2005, 00:07   Nach oben    #13
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Das, was ich mit dem BufferedWriter speichern würde, möchte ich jetzt nicht als Datei sondern in Form eines Strings haben, welchen ich dann Beispielsweise in einem TextArea wieder ausgeben kann.
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.02.2005, 11:01   Nach oben    #14
peschmae
Erfahrener Benutzer
 
Benutzerbild von peschmae
 
Registriert seit: 29.05.2004
Beiträge: 228
Standard

Wenn du unbedingt die Writer-Architektur verwenden willst gibts z.B. den StringWriter: http://java.sun.com/j2se/1.5.0/docs/...ingWriter.html

Der macht genau das. Aber eigentlich (es sei denn du machst das irgendwie austausch/wiederverwendbar in Bezug auf deinen Code) kannst du den Output ja auch selber in einem StringBuffer oder String sammeln.

MfG Peschmä
__________________
Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM
"We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth
peschmae ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.02.2005, 11:13   Nach oben    #15
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Zitat:
Zitat von peschmae
Aber eigentlich (es sei denn du machst das irgendwie austausch/wiederverwendbar in Bezug auf deinen Code) kannst du den Output ja auch selber in einem StringBuffer oder String sammeln.

MfG Peschmä
Genau sowas habe ich gesucht! Nur wie mache ich das?
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.02.2005, 11:42   Nach oben    #16
peschmae
Erfahrener Benutzer
 
Benutzerbild von peschmae
 
Registriert seit: 29.05.2004
Beiträge: 228
Standard

Naja, du schreibst dort rein. Am Ende machst du ein close() und mit toString() holst du den String an der Reception ab

MfG Peschmä
__________________
Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM
"We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth
peschmae ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.02.2005, 02:27   Nach oben    #17
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Wie gesagt, hab mit Streams bis jetzt noch net viel am Hut gehabt . Kannst du mir da vielleicht mal ein kleines Codebeispiel geben? Würde mir sehr helfen
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.02.2005, 09:48   Nach oben    #18
peschmae
Erfahrener Benutzer
 
Benutzerbild von peschmae
 
Registriert seit: 29.05.2004
Beiträge: 228
Standard

überredet

Code:
import java.io.*;

public class MsDosWriterTest {
  public static void main(String[] args) throws Exception {
    StringWriter bw = new StringWriter();
    bw.write("Der Stößel kostet 20€");
    bw.close();
    String s = bw.toString();
    System.out.println(s);
  }
}
Genau gleich wie in Fuzzys Beispiel einfach nur den BufferedWriter mit all den unterliegenden Writern für Dateischreiberei durch einen StringWriter ersetzt.

MfG Peschmä
__________________
Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM
"We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth
peschmae ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.02.2005, 17:10   Nach oben    #19
Gottzilla
Erfahrener Benutzer
 
Benutzerbild von Gottzilla
 
Registriert seit: 02.02.2005
Beiträge: 515
Standard

Also irgendwie scheine ich in den letzten paar Tagen komplett auf dem Schlauch zu stehen! Und wie bekomme ich das Ding jetzt in nen anderen Zeichensatz? Weil so wie mit dem BufferedWriter funzt das ja jetzt nimmer und ich kenn nur den OutputStreamWriter, der in nen anderen Zeichensatz konvertiert. Bin ich jetzt total blöd?
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten