0

我目前正在尝试使用 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();

这段代码中的错误是什么?

4

1 回答 1

0

我假设您的意思是“.mb”(而不是“.md”)。这是一种包含二进制数据而非文本数据的二进制文件格式。所以用 a 读取它是FileReader行不通的,因为它会将文件的所有字节转换为没有意义的文本!

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

于 2013-11-12T09:35:10.033 回答