我有一个方法可以将/res/raw/
的XML文件复制到本地存储中。但是,它最终复制的文件生成了一个额外的注释,该注释不在原始XML文件中:
<!-- From: file:/C:/Users/William/Documents/Projects/Home/KanjiFixProject/KanjiFix/src/main/res/raw/fallback_fonts.xml -->
它似乎给出了编译项目时文件存在位置。 See here for the full file text.
导致此文本出现的原因是什么,以及如何阻止它?以下是我用来将文件从/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();
}
}
}
答案 0 :(得分:0)
如果找不到以编程方式阻止流插入该值的方法,为什么不在发送到OutputStream之前逐行使用BufferReader和readLine,这样你就有机会验证该行了不要以“&lt; - From:file:”开头,否则只需忽略该行。
这可以解决问题,但我不知道它是否真的是最好的方法,因为在阅读时可能有一种方法以编程方式跳过该extraline ......
希望这有助于......
问候!
答案 1 :(得分:0)
Android Studio的较新版本(截至本文的v0.8.14)已解决此问题。