writeUTF将null添加到输出

时间:2013-01-05 02:52:07

标签: java

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();
       }  

当我执行此代码(还有更多)时,我得到&lt; nul&gt; $在每一行之后和页面的开头。我用nedit打开文本文件。

2 个答案:

答案 0 :(得分:0)

正好记录了writeUTF要做的事情。如果您不想要这种行为,请不要问它。

  

首先,将两个字节写入输出流,就好像writeShort方法一样,给出了要遵循的字节数。该值是实际写出的字节数,而不是字符串的长度。在长度之后,字符串的每个字符依次使用修改后的UTF-8编码输出。

答案 1 :(得分:0)

DataOutputStream是编写文本的不错选择。它旨在编写不同的Java数据类型并使用Java程序读取它们。以java.io.BufferedWriter(Java 7样式示例)

为例
    try (BufferedWriter wrt = Files.newBufferedWriter(Paths.get("file"), StandardCharsets.UTF_8)) {
        wrt.write("text");
    }