Verständnis von PrintWriter

mattk1

Mitglied
Hi.

Gegeben ist folgende Verschachtelung:

Java:
PrintWriter f = new PrintWriter(new BufferedWriter(new FileWriter(a.txt)));

Ich verstehe, dass BufferedWriter zum Puffern der Ausgabe dient und für Performancegewinn sorgt. PrintWriter ist mir nicht ganz klar. Ist das nur um bei print was anderes als einen String ausgeben zu können?

Edit:
Wo gibt's den mal für Java ne Möglichkeit um auf kurze Fragen schnell per Chat o.ä eine Antwort zu bekommen?

VG
matt
 
Zuletzt bearbeitet:

Spin

Top Contributor
Moin.

Die Klasse PrintWriter stellt AusgabeMethoden für alle primitive Datentypen und für Objekttypen zu Verfügung.

Um in Java eine Ausgabe zu realisieren musst du eine streambasierte Ausgaberoutine nutzen.
Und dazu gehört PrintWriter. Der Vorteil liegt darin , dass du eine riesige Auswahl an verschiedenen print methoden hast.

In deinen Beispiel: Wird eine doppelte Schachtelung realisiert. Das PrintWriter Objekt schreibt in einen BufferedWriter, der widerum in ein FileWriter.

-> im ASCII Format gepufferte Daten in eine Textdatei speichern.

grüße
 

mattk1

Mitglied
Moin.
-> im ASCII Format gepufferte Daten in eine Textdatei speichern.
grüße

Wo du das gerade schreibst: Im Handbuch der Java Programmierung gibt es ein Kapitel für Character-Streams und eins für Byte-Streams. Bei CharacterStreams hätte ich etwas über Zeichensätze und Zeichensatzumwandlung erwartet. Stattdessen ist bei Byte-Streams einmal die Rede von einer Methode namens writeUTF. Im Index taucht auch kaum was zu UTF-8 und Unicode auf. Zu Zeichensatz gar nix. Habt ihr einen guten Tipp wo ich mich dazu einlesen kann?
 

Spin

Top Contributor
Hey was habe ich denn ebend geschrieben?:rtfm:

Unicode, wenn du dich damit auskennst, weisst du auch wie das funktioniert.
Unicode-Zeichen mit den Werten aus dem Bereich von 0 bis 127 (0 bis 7F hexadezimal) werden in der UTF-8-Kodierung als ein Byte mit dem gleichen Wert wiedergegeben.


sonst hier von sun bereitgestellt encodierungs verfahren.
kodierung
 

mattk1

Mitglied
Unicode, wenn du dich damit auskennst, weisst du auch wie das funktioniert.

Nach meinem Verständnis ist Unicode eine standardisierte Menge die bspw. per UTF-8 dargestellt wird. Du schreibst:
Unicode-Zeichen mit den Werten aus dem Bereich von 0 bis 127 (0 bis 7F hexadezimal) werden in der UTF-8-Kodierung als ein Byte mit dem gleichen Wert wiedergegeben.

Was ist bspw. mit den Zeichen darüber die auch nur 1 Byte brauchen. Nach meinem Verständnis stellt sich mir die Frage ob Java intern mit UTF-8 arbeitet. Wo ist mein Denkfehler?
 

Spin

Top Contributor
Also:

\u0001 - \u007F 1 byte
\u0080 - \u07FF 2 byte
\u0800 - \uFFFF 3 byte

Und: UTF-8 unterstützt bis zu vier Byte, auf die sich wie bei allen UTF-Formaten alle Unicode-Zeichen abbilden lassen.
Java ist in Unicode, einem 16-Bit-Zeichensatz, geschrieben . Die ersten 256 Zeichen von Unicode sind der Zeichensatz Latin-1, und die ersten 128 Zeichen von Latin-1 sind der 7-Bit-Zeichensatz ASCII.
Die aktuelle Java-Umgebung wandelt normale ASCII- oder ISO-Latin-1 Dateien beim Einlesen um.

Ich hoffe die Information ergänzen dein Verständnis, gruß
 

mattk1

Mitglied
Wirklich zufireden stellt mich das alles nicht. Bsp.:
Java ist in Unicode, einem 16-Bit-Zeichensatz, geschrieben .
Uncode 2.0 erlaubt mehr als 16 Bit. Ich nehme also an es ist Unicode 1.0 gemeint.

2.'tes Bsp.:
Auf der Seite Sun Java Supported Character Encodings steht bei UTF8:
Eight-bit Unicode Transformation Format

UTF-8 ist nicht auf 8 Bit beschränkt.

Falls jemand einen Link hat, wo das Verhalten von Java genau erklärt ist, her damit.:)

Nachtrag:
Und: UTF-8 unterstützt bis zu vier Byte, auf die sich wie bei allen UTF-Formaten alle Unicode-Zeichen abbilden lassen.
Das ist klar. Nur wird geschrieben, das Java mit Unicode arbeitet. Verwendet es intern UTF-8? Es klingt ein wenig, als wäre mit Unicode UTF-8 gemeint.

Nachtrag2:
Ich habe nochmal darüber nachgedacht und möchte meine Frage mal anders formulieren:
Angenommen ich habe folgende Dateien:
1.) ASCII
2.) Latin-1
3.) UTF-8
4.) UTF-16
5.) UTF-32

a.) Welche der Dateien muss ich explizit umwandeln?

b.) Würde mir mal jemand ein Bsp. geben, wie das gemacht wird?
 
Zuletzt bearbeitet:

mattk1

Mitglied
Wär prima, wenn mit jemand noch folgendes beantworten würde:
Angenommen ich habe folgende Dateien:
1.) ASCII
2.) Latin-1
3.) UTF-8
4.) UTF-16
5.) UTF-32

a.) Welche der Dateien muss ich explizit umwandeln?

b.) Würde mir mal jemand ein Bsp. geben, wie das gemacht wird?
 

Spin

Top Contributor
Einfach mal durchklicken


Wenn du ein wenig englisch kannst und durch das Package lang klickst , findest du Antworten auf deinen Fragen.

Du siehst alles was unterstützt wird.
(brauchst dich also um nichts kümmern)


gruß spin
 

mattk1

Mitglied
Einfach mal durchklicken


Wenn du ein wenig englisch kannst und durch das Package lang klickst , findest du Antworten auf deinen Fragen.

Du siehst alles was unterstützt wird.
(brauchst dich also um nichts kümmern)

gruß spin

Hi Spin,

ich weiß du meinst es gut, aber ehrlich gesagt kann ich mit deinen Antworten nicht viel anfangen. Klar werden die Encodings unterstützt, aber wenn du dich ein bißchen auskennst, weißt du dass nicht automatisch das richtige Encoding erkannt werden kann. Ggf. lies dir mal die iconv manpage o.ä. durch

Wär prima, wenn mir jemand auf meine Frage eine eindeutige Antwort geben würde.
 

Spin

Top Contributor
Java Encoding Schemes

This appendix describes the character-encoding schemes that are supported by the Java platform.

US-ASCII

US-ASCII is a 7-bit character set and encoding that covers the English-language alphabet. It is not large enough to cover the characters used in other languages, however, so it is not very useful for internationalization.

ISO-8859-1

ISO-8859-1 is the character set for Western European languages. It's an 8-bit encoding scheme in which every encoded character takes exactly 8 bits. (With the remaining character sets, on the other hand, some codes are reserved to signal the start of a multibyte character.)

UTF-8

UTF-8 is an 8-bit encoding scheme. Characters from the English-language alphabet are all encoded using an 8-bit byte. Characters for other languages are encoded using 2, 3, or even 4 bytes. UTF-8 therefore produces compact documents for the English language, but for other languages, documents tend to be half again as large as they would be if they used UTF-16. If the majority of a document's text is in a Western European language, then UTF-8 is generally a good choice because it allows for internationalization while still minimizing the space required for encoding.

UTF-16

UTF-16 is a 16-bit encoding scheme. It is large enough to encode all the characters from all the alphabets in the world. It uses 16 bits for most characters but includes 32-bit characters for ideogram-based languages such as Chinese. A Western European-language document that uses UTF-16 will be twice as large as the same document encoded using UTF-8. But documents written in far Eastern languages will be far smaller using UTF-16.

Note: UTF-16 depends on the system's byte-ordering conventions. Although in most systems, high-order bytes follow low-order bytes in a 16-bit or 32-bit "word," some systems use the reverse order. UTF-16 documents cannot be interchanged between such systems without a conversion.

Dann weiter:

The Java programming language represents characters internally using the Unicode character set, which provides support for most languages. For storage and transmission over networks, however, many other character encodings are used. The Java 2 platform therefore also supports character conversion to and from other character encodings. Any Java runtime must support the Unicode transformations UTF-8, UTF-16BE, and UTF-16LE as well as the ISO-8859-1 character encoding, but most implementations support many more. For a complete list of the encodings that can be supported by the Java 2 platform

The classes java.io.InputStreamReader, java.io_OutputStreamWriter, java.lang.String, and classes in the java.nio.charset package can convert between Unicode and a number of other character encodings. The supported encodings vary between different implementations of the Java 2 platform. The java.lang package specification and the class description for java.nio.charset.Charset list the encodings that any implementation of the Java 2 platform, Standard Edition, v. 1.4.2 is required to support.

Enthalten in : (contained in lib/rt.jar)


Und hier nochmal für dich :

Vielleicht das entscheidene für deine Frage.


gruß



Nachtrag:

Feststellung:

Ein Java-Programm besteht aus einer Folge von UNicode Zeichen. Der Uni - Zeichensatz fasst fast alle internationale Zeichensätze zusammen.

Ein Unicodezeichen ist dabei 2 Byte groß. ( 16bit lang)
Zudem ist der Unicode mit den ersten 128 Zeichen des ASCII und mit den ersten 256 Zeichen des ISO-8859-1 Zeichensatzes kompatibel.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
KogoroMori21 Polymorphie-Verständnis Java Basics - Anfänger-Themen 5
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
T Methoden Verständnis Java Basics - Anfänger-Themen 14
M Java Code Verständnis Java Basics - Anfänger-Themen 4
M Java Code Verständnis Java Basics - Anfänger-Themen 2
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
K nur für das verständnis Java Basics - Anfänger-Themen 3
B Verständnis Frage zu der Aufgabe Java Basics - Anfänger-Themen 30
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
J Code Verständnis Java Basics - Anfänger-Themen 9
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
Y MVC MouseEvent Verständnis Java Basics - Anfänger-Themen 24
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
M If Verständnis Problem Java Basics - Anfänger-Themen 2
J Verständnis Problem Java-Listener. Java Basics - Anfänger-Themen 59
D Hilfe bei Verständnis von Aufgabe Java Basics - Anfänger-Themen 1
I Verständnis Frage wegen einer Aufgabe Java Basics - Anfänger-Themen 10
P verständnis Frage Refernzen und Objekte Java Basics - Anfänger-Themen 1
S Verständnis - Frage mehrere SQL Statements in While Schleife Java Basics - Anfänger-Themen 0
J java syntax verständnis Java Basics - Anfänger-Themen 6
M Verständnis von Deadlocks Java Basics - Anfänger-Themen 2
C Klassen/Objekte Verständnis Java Basics - Anfänger-Themen 8
O Singleton Verständnis Java Basics - Anfänger-Themen 4
C Allgemeines Verständnis For-Schleife Java Basics - Anfänger-Themen 3
vodkaz For Schleife Verständnis Problem Java Basics - Anfänger-Themen 4
R Input/Output MVC - Frage zum Verständnis Java Basics - Anfänger-Themen 5
G regex Verständnis Problem Java Basics - Anfänger-Themen 3
B Hilfe beim Verständnis zu Generics Java Basics - Anfänger-Themen 7
J Musterlösung Verständnis Frage zu Math.abs() Java Basics - Anfänger-Themen 5
R RandomAccessFile verständnis Problem Java Basics - Anfänger-Themen 10
M Erste Schritte Verständnis Problem Konstruktoren Java Basics - Anfänger-Themen 13
X Kompilat verständnis Frage Java Basics - Anfänger-Themen 9
C Input/Output Anfänger Array-Verständnis Frage Java Basics - Anfänger-Themen 7
H Überladen Verständnis Java Basics - Anfänger-Themen 3
J Compiler-Fehler Verständnis Problem bei Compiler-Warning Java Basics - Anfänger-Themen 7
E Verständnis zu einem Rekursionsbeispiel Java Basics - Anfänger-Themen 12
F Verständnis Frage - && Java Basics - Anfänger-Themen 2
S Timer / Schleifen Verständnis Problem Java Basics - Anfänger-Themen 3
O Frage zu Verständnis von Collection Java Basics - Anfänger-Themen 4
JavaKaffee Minimax-Algorithmus Verständnis Java Basics - Anfänger-Themen 12
C Methoden Frage zu Verständnis eines Beispiels Java Basics - Anfänger-Themen 3
M Polymorphie Cast:Verständnis und Ausführung Java Basics - Anfänger-Themen 10
M Verständnis Frage Java Basics - Anfänger-Themen 11
M Verständnis-Probleme mit eigenen Klassen Java Basics - Anfänger-Themen 2
T Verständnis von "final" und "static" Java Basics - Anfänger-Themen 6
U ADT verständnis Problem Java Basics - Anfänger-Themen 18
S Java Verständnis Problem Methoden etc. Java Basics - Anfänger-Themen 22
F ArrayList() Verständnis Java Basics - Anfänger-Themen 14
M Verständnis einiger Zeilen Java Basics - Anfänger-Themen 4
P Codeschnipsel Verständnis Problem (Array) Java Basics - Anfänger-Themen 6
F Groovy Verständnis ConfigSlurper Java Basics - Anfänger-Themen 7
H Verständnis Strategy Pattern Java Basics - Anfänger-Themen 4
A Dringende Bitte um Erklärungen zum besseren Verständnis Java Basics - Anfänger-Themen 4
J Verständnis Problem mit return --> Klausuraufgabe Java Basics - Anfänger-Themen 4
deimosmuc Hilfe zum Verständnis bei Vererbung Java Basics - Anfänger-Themen 11
T Verständnis-Frage Java Basics - Anfänger-Themen 2
F (Verständnis)Problem: Zahl auf 2 Nachkommastellen runden Java Basics - Anfänger-Themen 5
E Verständnis frage zum return wert eines Arrays Java Basics - Anfänger-Themen 7
S Frage zu Verständnis und Logik Java Basics - Anfänger-Themen 5
P Verständnis bzgl. MVC Java Basics - Anfänger-Themen 11
M Klassen und Objekte => richtiges Verständnis? Java Basics - Anfänger-Themen 6
B Exception verständnis Problem Java Basics - Anfänger-Themen 2
V KSKB zum Verständnis von Graphics und paintComponent Java Basics - Anfänger-Themen 6
A Array Verständnis Frage Java Basics - Anfänger-Themen 4
L Hashtable Verständnis Frage Java Basics - Anfänger-Themen 4
M Verständnis-Problem Java Basics - Anfänger-Themen 4
H Verständnis: Methode Java Basics - Anfänger-Themen 2
Z Verständnis Java Basics - Anfänger-Themen 4
R Verständnis Java Basics - Anfänger-Themen 4
R Verständnis bei Listen Java Basics - Anfänger-Themen 2
R Verständnis Klassen Java Basics - Anfänger-Themen 9
T Printwriter Datei nicht überschreiben Java Basics - Anfänger-Themen 10
Queiser1304 PrintWriter Java Basics - Anfänger-Themen 2
M Frage zu printWriter Java Basics - Anfänger-Themen 5
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5
F FileCreation - PrintWriter funktioniert nicht... Java Basics - Anfänger-Themen 1
S PrintWriter Fehler Java Basics - Anfänger-Themen 5
C PrintWriter schreibt keine in Strings enthaltenen Zeilenumbrüche Java Basics - Anfänger-Themen 9
O Input/Output Ein (negatives) Byte über PrintWriter hinausschreiben Java Basics - Anfänger-Themen 3
G PrintWriter each line möglich? Java Basics - Anfänger-Themen 4
N Fehlersuche Printwriter Java Basics - Anfänger-Themen 6
S PrintWriter Java Basics - Anfänger-Themen 5
J I/O - PrintWriter oder BufferedWriter Java Basics - Anfänger-Themen 7
J Printwriter wie kann ich daten geordnet schreiben???? Java Basics - Anfänger-Themen 8
A PrintWriter und Scanner bei Sockets Java Basics - Anfänger-Themen 2
G Begrenzung bei PrintWriter? Java Basics - Anfänger-Themen 6
L PrintWriter autoflush: println funktioniert, print nicht Java Basics - Anfänger-Themen 3
S PrintWriter-Probleme mit toString Methode->Person@17182c1 Java Basics - Anfänger-Themen 10
A PrintWriter und Kommandozeile Java Basics - Anfänger-Themen 5
S PrintWriter mit StringBuffer? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben