Unterschied FileOutputStream und FileWriter?

Status
Nicht offen für weitere Antworten.

Verjigorm

Top Contributor
Hallo,
vielleicht mach ich mich jetzt ja zum Deppen 🙂 , aber ich verstehe da einen grundlegenden Unterschied nicht.

Wo liegt denn der Unterschied zwischen einem FileOutputStream und FileWriter?
Also die Theorie kenn ich, mit Byte-Stream 8 Bit lang und 16 Bit lange Unicode-Zeichen.
Aber mir wird nicht klar, was das ganz bringt.

Wenn ich "hallo" per Filewriter oder FileOutputStream in eine Datei schreibe, dann "sieht" man erstmal keinen Unterschied, wenn man sich die Datei anschaut. (???)

Hintergrund des Ganzen ist:

Ich soll eine XML-Datei erstellen, die ungefähr so aussieht
Code:
<mydocument>
   <value1>...</value1>
   <value2>...</value2>
   ....
   <inhalt>
   ...
   ...
   </inhalt>
</mydocument>

und alles zwischen <inhalt></inhalt> soll per "Binärdatenstrom" abgespeichert werden.

soll ich jetzt nen Filewriter machen und alles bis <inhalt> schreiben, dann schliessen und danach nen FileoutputStream bis </inhalt>
und danach wieder nen Filewriter ?
Geht das überhaupt?

Ich soll später die "Daten" per XQuery/XPath (davon hab ich auch keinen Plan 😀 ) wieder auslesen, hat dass dann irgendnen Unterschied?
Ich bin grad leicht überfordert 😉

Ich kann leider meinen tollen Betreuer, der mir diese Aufgabe gestellt, hat bis Mittwoch nicht erreichen ...

mfg Verjigorm
 
Streams sind für Binär-Dateien, Writer sind für Text-Dateien. Joe wollte dich darauf hinweisen, dass du zum auslesen/schreiben von XML-Files JDom verwenden sollst.
 
bei einem writer hast du methoden mit denen du strings schreiben kannst...
 
*grummel*

OK nochmal

ich mache folgendes:
Code:
FileOutputStream fos = new FileOutputStream( "test.txt");
fos.write( "hallo".getBytes());
und
Code:
BufferedWriter bw = new BufferedWriter ( new FileWriter ("test.txt") );
bw.write("hallo");

ich seh da persönlich keinen Unterschied, in der Datei steht jeweils "hallo" und ich kann das auch ganz normal per FileReader auslesen, auch wenn ich es als FileOutputStream in die Datei geschrieben habe.

Also was bringt mir das ganze?
Ich verstehe nicht, wieso die Aufgabenstellung sagt, ich solle alles zwischen <inhalt></inhalt> als FileOutputStream schreiben
Da muss doch was anders sein?

mfg
 
Hobbit hats doch schon beantwortet:

Hobbit_Im_Blutrausch hat gesagt.:
Streams sind für Binär-Dateien, Writer sind für Text-Dateien.


Klar kannst Du auch mit dem OutputStream Textdateien schreiben, aber eben auch andere Binärdaten.


Wenn Du bei Deiner Aufgabe einen FOS benutzen sollst, dann liegt es nahe, dass da eben kein Text rein soll sondern rohe Bytes.
 
Um den Unterschied zu sehen, kannst du ja einfach mal ein Bild mit einem Reader lesen und anschließend mit einem Writer wieder in eine andere Datei schreiben. Selibges machst du dann nochmal mit Streams. Und dann sagst du uns, was du beobachten konntest 😉 .
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben