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)
- Cambiar la longitud de cada ráfaga en la carga de archivos multipart en android
- Entidad devuelve error en MultiPartEntityBuilder
- ¿Cuál es la forma estándar de publicar el objeto JSON junto con el archivo utilizando MultipartEntityBuilder y el cliente HTTP en Android
- Apache HttpClient Android (Gradle)
- Mejor método para subir imágenes al servidor php en Android?
Puede alguien ayudarme con esto?
- Android MultipartEntity POST recibe todo, además de FileBody
- Editar encabezados de MultiPartEntity
- Codificación UTF-8 con FileBody en MultipartEntity
- Android: cargar imagen y JSON utilizando MultiPartEntityBuilder
- Configuración de la codificación para una entidad multiparte
- MultipartEntity y Json
- Problema Envío de archivos multipart con límite a través de Volley
- Los parámetros @Part sólo se pueden utilizar con la codificación multipart. (Parámetro # 8)
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);