如何在Android中的原始文件夹中打开文件

Nem*_*min 4 android file-upload multipartentity

我在MultipartEntity中使用,我正在尝试引用raw文件夹中的文件.这是代码:

MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart(new FormBodyPart("file", new FileBody(new File("test.txt"))));
Run Code Online (Sandbox Code Playgroud)

test.txt文件位于我的res/raw文件夹中.当我执行代码时,我得到以下异常:FileNotFoundException:/test.txt:open failed:ENOENT(没有这样的文件或目录)

谁能帮我这个?

Bla*_*elt 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();
   }
Run Code Online (Sandbox Code Playgroud)