2010-09-21 13 views
58

Estoy trabajando en algunas aplicaciones en las que tengo que actualizar algunos archivos presentes en recursos/tiempo de ejecución de carpetas sin procesar desde alguna ubicación http.¿Cómo escribir archivos en la carpeta de activos o la carpeta sin formato en Android?

¿Alguien me puede ayudar compartiendo cómo escribir archivos en activos o en la carpeta sin formato?

+3

activos/carpetas sin formato no existen en el teléfono. Están compilados en el paquete – Falmarri

Respuesta

114

No se puede hacer. Es imposible.

+4

En realidad, lo he hecho con un error de vista (una vista web mostró mi código fuente de Java y luego el archivo html que cargó de los activos contenía mi código fuente de Java sin espacios ni nada). Actualmente estoy buscando cómo recrearlo. – CQM

9

No se puede escribir datos de al activo/carpeta Raw, ya que está empaquetado (.apk) y no se puede expandir en tamaño.

Si su aplicación necesita descargar archivos de dependencia del servidor, puede ir a Archivos de expansión APK proporcionados por android (http://developer.android.com/guide/market/expansion-files.html).

1

Otro enfoque para el mismo problema puede ayudarle a de lectura y escritura de archivos en el ámbito privado de la aplicación

    String NOTE = "note.txt"; 
       private void writeToFile() { 
     try { 
     OutputStreamWriter out = new OutputStreamWriter(openFileOutput(
       NOTES, 0)); 

     out.write("testing"); 
     out.close(); 
     } 

     catch (Throwable t) { 
     Toast.makeText(this, "Exception: " + t.toString(), 2000).show(); 
     } 
      } 


      private void ReadFromFile() 
     { 
     try { 
     InputStream in = openFileInput(NOTES); 
     if (in != null) { 
      InputStreamReader tmp = new InputStreamReader(in); 
      BufferedReader reader = new BufferedReader(tmp); 
      String str; 
      StringBuffer buf = new StringBuffer(); 
      while ((str = reader.readLine()) != null) { 
       buf.append(str + "\n"); 
      } 
      in.close(); 
      String temp = "Not Working"; 
      temp = buf.toString(); 
      Toast.makeText(this, temp, Toast.LENGTH_SHORT).show(); 
     } 
    } catch (java.io.FileNotFoundException e) { 
     // that's OK, we probably haven't created it yet 
    } catch (Throwable t) { 
     Toast.makeText(this, "Exception: " + t.toString(), 2000).show(); 
    } 
} 
0

no se puede escribir archivo JSON, mientras que en los activos. como los activos ya descritos son de solo lectura. Pero puede copiar activos (archivo json/cualquier otra cosa en activos) en el almacenamiento local de dispositivos móviles y luego editar (escribir/leer) desde el almacenamiento local. Se encuentran disponibles más opciones de almacenamiento como la Preferencia compartida (para datos pequeños) y la base de datos sqlite (para datos grandes).

Cuestiones relacionadas