Was ist der Unterschied zwischen writeUTF und writeChars? (Methoden von ObjectOutputStream) Weiter habe ich die entsprechenden readChars in ObjectInputStream nicht gefunden.Was ist der Unterschied zwischen writeUTF und writeChars?
Antwort
writeUTF
schreibt Text in UTF-8-Format-Codierung mit Textlänge vorangestellt, so readUTF
weiß, wie viele Zeichen aus dem Stream zu lesen.
writeChars
schreibt Text als eine Folge von 2-Byte-Zeichen ohne Länge. Um es zu lesen, sollten wir readChar
Methode verwenden und wir müssen wissen, wie viele Zeichen geschrieben wurden.
writeChars() verwendet Unicode-Werte
jedes Zeichen in der Zeichenfolge s Schreibt, in den Ausgabestrom, in Ordnung, zwei Bytes pro Zeichen. Wenn s null ist, wird eine NullPointerException ausgelöst. Wenn s.length null ist, werden keine Zeichen geschrieben. Andernfalls wird das Zeichen s [0] zuerst geschrieben, dann s 1 und so weiter; Das letzte geschriebene Zeichen ist s [s.length-1]. Für jedes Zeichen werden zwei Bytes geschrieben, höherwertige Byte zuerst, genau in der Weise der writeChar-Methode.
writeUTF() verwendet ein leicht-modifizierte Version von UTF-8
Schreibt zwei Bytes von Längeninformationen in den Ausgabestrom, gefolgt durch die modifizierte UTF-8-Darstellung jedes Zeichens in der Zeichenfolge s. Wenn s null ist, wird eine NullPointerException ausgelöst. Jedes Zeichen in die Zeichenfolge s wird in eine Gruppe von einem, zwei oder drei Bytes, je nach dem Wert des Zeichens konvertiert.
Obwohl es in DataOutputStream eine Methode writeChar gibt, gibt es in DataInputStream keine Methode readChars – maamaa
ref: https://docs.oracle.com/javase/7/docs/api/java/io/DataOutputStream.html#writeChars% 28java.lang.String% 29 – kebs