Qual è la differenza tra writeUTF e writeChars? (metodi di ObjectOutputStream) Inoltre non ho trovato i readChar corrispondenti in ObjectInputStream.Qual è la differenza tra writeUTF e writeChars?
risposta
writeUTF
scrive testo in formato UTF-8 codifica preceduto con lunghezza del testo, in modo da readUTF
sa quanti caratteri leggere dal flusso.
writeChars
scrive il testo come una sequenza di caratteri di 2 byte senza lunghezza. Per leggerlo, dovremmo usare il metodo readChar
e abbiamo bisogno di sapere quanti caratteri sono stati scritti.
writeChars() utilizza valori Unicode
Scrive ogni carattere della stringa s, nel flusso di output, in ordine, due byte per carattere. Se s è nullo, viene generata una NullPointerException . Se s.length è zero, non viene scritto alcun carattere. Altrimenti, il carattere s [0] viene scritto per primo, quindi s 1 e così via; l'ultimo carattere scritto è s [s.length-1]. Per ogni carattere, due byte vengono effettivamente scritti, il byte di ordine superiore per primo, esattamente nel modo del metodo writeChar.
writeUTF() utilizza una versione leggermente modificata di UTF-8
Scrive due byte di informazione lunghezza nel flusso di output, seguita dalla rappresentazione modificata UTF-8 di ogni carattere nel stringa s. Se s è nullo, viene generata una NullPointerException. Ogni carattere in la stringa s viene convertito in un gruppo di uno, due o tre byte, a seconda del valore del carattere.
Anche se esiste un metodo writeChar in DataOutputStream, non esiste alcun metodo readChars in DataInputStream – maamaa
ref: https://docs.oracle.com/javase/7/docs/api/java/io/DataOutputStream.html#writeChars% 28java.lang.String% 29 – kebs