?添加到outputstream - 编码问题?

时间:2013-11-12 09:25:44

标签: java encoding printwriter

我目前正在尝试使用Java操作maya 2008文件(.md)。在这个文件中,我必须替换文本中的一些段落。“MY15”应该转换为“MY16”。在我替换了这个子字符串后,它被写入一个新文件。

由于无法在Maya中打开新文件,我只是将给定的文件复制到新文件中。 如果我在diff-tool中打开这两个文件,即使我不替换这些文件中的任何内容,我也会有所不同。

例如:

"DBLE@@ATTRda"变为"DBLE@?@ATTRda"

但并非所有@元素都被?@替换。

(其他示例:>ãÁ@ - > >?ãÁ@

我正在使用PrintWriter创建这些文件。

in = new FileReader(new File(inputPath));
writer = new PrintWriter(outpath, in.getEncoding());
writer.print(content);
writer.flush();
writer.close();

此代码中的错误是什么?

1 个答案:

答案 0 :(得分:0)

我认为你的意思是'.mb'(而不是'.md')。这是一种二进制文件格式,包含二进制数据,而不是文本数据。因此,使用FileReader读取它将无法正常工作,因为它会将文件的所有字节转换为无意义的文本!

相反,您应该使用FileInputStream并使用字节而不是字符。