0
for(int i=0;i<charset.size(); i++ )
       {
       String plaintext1= charset.get(i); 
       fos= new FileOutputStream("/root/something.txt", true);
       dos= new DataOutputStream(fos);
       String hashtext=CreateHash.returnString(charset.get(i));
        dos.writeUTF('\n'+plaintext1+" ="+hashtext);
       fos.close();
       dos.close();
       }  

このコードを実行すると(さらにあります)、各行の後とページの先頭で<nul>$を取得します。neditでテキストファイルを開いています。

4

2 に答える 2

0

これはまさにwriteUTFが行うように文書化されていることです。この動作を望まない場合は、要求しないでください。

最初に、 2バイトが、後続のバイト数を指定するメソッドのように出力ストリームに書き込まれwriteShortます。この値は、文字列の長さではなく、実際に書き出されたバイト数です。長さに続いて、文字列の各文字が、文字の変更されたUTF-8エンコーディングを使用して順番に出力されます。

于 2013-01-05T02:56:53.393 に答える
0

DataOutputStreamは、テキストの書き込みには適していません。さまざまなJavaデータ型を記述し、Javaプログラムで読み取るように設計されています。java.io.BufferedWriterを取り上げます(Java 7スタイルの例)

    try (BufferedWriter wrt = Files.newBufferedWriter(Paths.get("file"), StandardCharsets.UTF_8)) {
        wrt.write("text");
    }
于 2013-01-05T03:01:20.293 に答える