我在MultipartEntity中使用,我正在尝试引用raw文件夹中的文件。这是代码:
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart(new FormBodyPart("file", new FileBody(new File("test.txt"))));
test.txt文件位于我的res / raw文件夹中。当我执行代码时,我得到以下异常:FileNotFoundException:/test.txt:open failed:ENOENT(没有这样的文件或目录)
任何人都可以帮我吗?
答案 0 :(得分:8)
很遗憾,您无法直接从原始文件夹创建File
对象。您需要复制它或在SD卡中或应用程序的缓存中。
您可以通过这种方式检索文件的InputStream
InputStream in = getResources().openRawResource(R.raw.yourfile);
try {
int count = 0;
byte[] bytes = new byte[32768];
StringBuilder builder = new StringBuilder();
while ( (count = in.read(bytes,0, 32768)) > 0) {
builder.append(new String(bytes, 0, count));
}
in.close();
reqEntity.addPart(new FormBodyPart("file", new StringBody(builder.toString())));
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:3)
您可以将文件放在/ res / raw目录中,该文件将被编入索引,并且可以通过R文件中的ID访问:
InputStream is = getResources().openRawResource(R.raw.test);
System.out.println(is);