Cómo abrir un archivo en carpeta sin procesar en Android

Estoy usin MultipartEntity y estoy tratando de referirme al archivo en la carpeta raw. Aquí está el código:

MultipartEntity reqEntity = new MultipartEntity(); reqEntity.addPart(new FormBodyPart("file", new FileBody(new File("test.txt")))); 

El archivo test.txt está en mi carpeta res / raw. Cuando ejecuto el código, obtengo la siguiente excepción: FileNotFoundException: /test.txt: open failed: ENOENT (Ningún archivo o directorio)

Puede alguien ayudarme con esto?

Desafortunadamente, no puede crear un objeto File directamente desde la carpeta raw. Necesita copiarlo o en su tarjeta SD o dentro de la caché de la aplicación.

Puede recuperar el InputStream para su archivo de esta manera

  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(); } 

Usted puede poner el archivo en el directorio / res / raw, donde el archivo será indexado y es accesible por un id en el archivo R:

 InputStream is = getResources().openRawResource(R.raw.test); System.out.println(is); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.