![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 02.02.2005
Beiträge: 529
|
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.
|
| | |
| | Nach oben #2 |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
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.
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 |
| | |
| | Nach oben #4 |
| Gast
Beiträge: n/a
|
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". |
|
| | Nach oben #6 |
| Gast
Beiträge: n/a
|
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();
}
}
|
|
| | Nach oben #7 |
| Erfahrener Benutzer Registriert seit: 02.02.2005
Beiträge: 529
|
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: . |
| | |
| | Nach oben #9 |
| Gast
Beiträge: n/a
|
@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();
}
}
|
|
| | Nach oben #10 | ||
| Erfahrener Benutzer Registriert seit: 02.02.2005
Beiträge: 529
| Zitat:
@ Fuzzy vielen dank für den Wink mit dem Leuchtturm [edit] Funktioniert übrigens prächtig! | ||
| | |
| | Nach oben #11 |
| Erfahrener Benutzer Registriert seit: 02.02.2005
Beiträge: 529
|
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
|
| | |
| | Nach oben #12 |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
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 |
| | |
| | Nach oben #14 |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
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 |
| | |
| | Nach oben #15 | |
| Erfahrener Benutzer Registriert seit: 02.02.2005
Beiträge: 529
| Zitat:
| |
| | |
| | Nach oben #16 |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
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 |
| | |
| | Nach oben #18 |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
ü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);
}
}
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 |
| | |
| | Nach oben #19 |
| Erfahrener Benutzer Registriert seit: 02.02.2005
Beiträge: 529
|
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?
|
| | |
| | Nach oben #20 | |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
Java Strings gibts so nicht in Zeichensätzen. Die sind immer Unicode (weiss nicht mehr ob UTF8 oder UTF16, ist auch egal) Zitat:
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 | |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Probleme mit RSS | heohni | PHP-Programmierung | 21 | 13.10.2006 12:10 |
| Text hinter einem Bild mittig positionieren | florian | HTML, XML und CSS | 3 | 13.09.2006 21:28 |
| Bild im Text mit css? | code5 | HTML, XML und CSS | 11 | 20.12.2005 13:15 |
| dateisystem, Text an erste Position anhängen | Niedi | PHP-Programmierung | 15 | 28.10.2005 20:59 |