1

我有一种将 XML 文件从本地存储复制/res/raw/到本地存储的方法。但是,它最终复制的文件生成了一个不在原始 XML 文件中的附加注释:

<!-- From: file:/C:/Users/William/Documents/Projects/Home/KanjiFixProject/KanjiFix/src/main/res/raw/fallback_fonts.xml -->

它似乎给出了我编译项目时文件存在的位置。有关完整的文件文本,请参见此处。

是什么导致此文本出现,我该如何防止它?以下是我用来将文件从磁盘复制/res/raw/到磁盘的方法:

private void copyRawResourceToFile(int resource, File outputFile) throws IOException {
    InputStream stream = getResources().openRawResource(resource);
    FileOutputStream output = null;
    byte[] buffer = new byte[1024];
    int read = 0;
    try {
        output = new FileOutputStream(outputFile);

        while ((read = stream.read(buffer)) > 0) {
            output.write(buffer, 0, read);
        }

        output.flush();
    }
    finally {
        stream.close();

        if (output != null) {
            output.close();
        }
    }
}
4

2 回答 2

0

较新版本的 Android Studio(截至本文为 v0.8.14)已修复此问题。

于 2014-12-08T17:53:33.090 回答
0

如果您找不到以编程方式阻止流插入该值的方法,为什么不在发送到 OutputStream 之前逐行使用 BufferReader 和 readLine,让您有机会验证该行不以“<-- From: file:”,否则忽略该行。

这可以解决问题,但我不知道是否实际上是最好的方法,因为可能有一种方法可以在阅读时以编程方式跳过该外线......

希望这可以帮助...

问候!

于 2013-10-03T00:27:48.383 回答