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被记录在案的。如果您不想要这种行为,请不要要求它。

首先,两个字节被写入输出流,就像通过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 回答