2014-12-03 24 views
5

Sono nuovo nello sviluppo di Android. Attualmente sto sviluppando una semplice app per scrivere e leggere un array di stringhe in una memoria interna.Scrittura/lettura di Array di stringhe su memoria interna android

Per prima cosa dobbiamo Una matrice poi salvarli nella memoria, poi la prossima attività li caricherà e assegnarli ad un array B. Grazie

+0

Vuoi che il tuo array venga salvato anche quando la tua attività è chiusa? – Darpan

+0

Sì. Qualcosa come il download da Internet, quindi salvarlo la prossima volta caricarlo dalla memoria interna –

risposta

4

Se si desidera memorizzare yourObject per memorizzare nella cache di directory, questo è come lo fai -

String[] yourObject = {"a","b"}; 
    FileOutputStream stream = null; 

    /* you should declare private and final FILENAME_CITY */ 
    stream = ctx.openFileOutput(YourActivity.this.getCacheDir()+YOUR_CACHE_FILE_NAME, Context.MODE_PRIVATE); 
    ObjectOutputStream dout = new ObjectOutputStream(stream); 
    dout.writeObject(yourObject); 

    dout.flush(); 
    stream.getFD().sync(); 
    stream.close(); 

per leggerlo di nuovo -

String[] readBack = null; 

FileInputStream stream = null; 

    /* you should declare private and final FILENAME_CITY */ 
    inStream = ctx.openFileInput(YourActivity.this.getCacheDir()+YOUR_CACHE_FILE_NAME); 
    ObjectInputStream din = new ObjectInputStream(inStream); 
    readBack = (String[]) din.readObject(yourObject); 

    din.flush(); 

    stream.close(); 
10

per scrivere in un file:

try { 
     File myFile = new File(Environment.getExternalStorageDirectory().getPath()+"/textfile.txt"); 
     myFile.createNewFile(); 
     FileOutputStream fOut = new FileOutputStream(myFile); 
     OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
     myOutWriter.write("replace this with your string"); 
     myOutWriter.close(); 
     fOut.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Per leggere dal file:

String pathoffile; 
    String contents=""; 

    File myFile = new File(Environment.getExternalStorageDirectory().getPath()+"/textfile.txt"); 
    if(!myFile.exists()) 
    return ""; 
    try { 
     BufferedReader br = new BufferedReader(new FileReader(myFile)); 
     int c; 
     while ((c = br.read()) != -1) { 
      contents=contents+(char)c; 
     } 

    } 
    catch (IOException e) { 
     //You'll need to add proper error handling here 
     return ""; 
    } 

Così verranno restituiti il ​​contenuto del file nella stringa di "contenuti"

Nota: è necessario fornire permessi di lettura e scrittura nel file manifest

2

Su Android si dispone di più storage options.

Se si desidera memorizzare un array di stringhe, utilizzare SharedPreferences:

Questo post potrebbe essere una soluzione.

Problemi correlati