无法正确写入java文件*

时间:2012-06-27 18:34:19

标签: java file-io

我必须阅读文本文件并根据某些逻辑对文件进行一些更改。所以我正在使用

逐行读取文件
 while ( (temp_string = inputstream.readLine()) != null )
 {
    /*after employing some other logic*/
    outputstream.write(temp_string);
    outputstream.flush();
}

其中temp_string是一个String,输入流的声明是:

BufferedReader inputstream  = new BufferedReader(new FileReader(pathtosilentfile)); 

并且outputstream的声明是:

BufferedWriter outputstream = new BufferedWriter(new FileWriter(pathtooutputfile));

但是当我写入文本文件(新文件)时,会有很多垃圾,在notepad ++上显示为NULL。此外,写入的数据在记事本或wordpad中看起来还不错。这是某种编码错误吗?我不明白!怎么回事?

3 个答案:

答案 0 :(得分:3)

首先,你正在读行,而不是写任何换行符。 temp_string不包含任何换行符/换行符。虽然这似乎不是你遇到的唯一问题。

答案 1 :(得分:2)

如果您告诉我们output_stream是什么,那真的会有所帮助 - 但 应该是某个描述的Writer - 可能是{{1}缠绕OutputStreamWriter,指定适当的编码(我猜这取决于你)。

如果它在Notepad / Wordpad中看起来没问题,但在Notepad ++中坏了,那么它可能 是一个编码问题,但您应该决定使用哪种编码。 UTF-8通常是一个不错的选择(ASCII紧凑,涵盖整个Unicode,广泛支持)但它取决于需要读取文件的内容。

答案 2 :(得分:1)

开头的NULL加载意味着您​​开始写入文件的中间而不是开头。记事本/写字板简单地忽略了这一点,但是你的文件会比你想要的要大得多,并且在读入其他文件时可能会出现问题。

但是,由于我们在您开始写作之前不知道outputstream是什么或者做了什么,我们无法帮助您。