我目前正在尝试使用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();
此代码中的错误是什么?
答案 0 :(得分:0)
我认为你的意思是'.mb'(而不是'.md')。这是一种二进制文件格式,包含二进制数据,而不是文本数据。因此,使用FileReader
读取它将无法正常工作,因为它会将文件的所有字节转换为无意义的文本!
相反,您应该使用FileInputStream
并使用字节而不是字符。