0

これはCentOS 6.2上にあります。テキスト ファイルに書き込んでいますが、最初に ETX M が追加されています。(ETXはキャラクターの名前です)

file.setLength(0);
file.seek(0);
file.writeUTF(somestring);
4

1 に答える 1

2

ドキュメントから引用するにはRandomAccessile.writeUTF()

最初に、現在のファイル ポインタから始まる 2 バイトがファイルに書き込まれます。これは、後続のバイト数を指定する writeShort メソッドによるかのように行われます。この値は、文字列の長さではなく、実際に書き出されたバイト数です。長さに続いて、文字列の各文字が、各文字に修正された UTF-8 エンコーディングを使用して順番に出力されます。

これが望ましくない場合は、文字列を手動でバイトに変換し、それらのバイトを基本的なwrite()方法で書き込みます (注意:必要なものwriteBytes() ではありません)。ただし、文字列を再度読み取るために、文字列のサイズを追跡する何らかの方法が必要になります (固定幅フィールドを使用している場合を除く)。

于 2012-08-29T20:00:57.017 に答える