Autore Topic: Salvare un file su sd card (e scriverci del testo dentro)  (Letto 9369 volte)

Offline ScarfaceIII

  • Utente junior
  • **
  • Post: 112
  • Respect: +13
    • raferalston12
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    GNU/Linux, Ubuntu 10.04 / Windows 7
Salvare un file su sd card (e scriverci del testo dentro)
« il: 15 Maggio 2010, 00:38:33 CEST »
+7
Potrebbe sembrare una banalità (e in effetti un po' lo è), ma al primo approccio è stato uno scoglio notevole in realtà. Dovendo loggare le letture dei sensori accelerometrici su un file, la comodità di scrivere un file sulla sd è notevole direi, ed è stata quindi la prima scelta. Peccato che i vari tutorial trovati in giro per scrivere su file fallivano senza che io capissi il perché. Per evitare a ciascuno di voi che ne sentisse il bisogno, scrivo qui il codice che ha risolto il problema per me:

Codice (Java): [Seleziona]
        private File sd = Environment.getExternalStorageDirectory();
        private File f = new File(sd, "nome_file.txt");

        public void write (String Data){
        FileWriter fw = null;
        BufferedWriter bw = null;
        try{
                fw = new FileWriter(f, true);
                bw = new BufferedWriter(fw);
                bw.write(Data);
                bw.close();
                fw.close();
            //Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show();
            }
            catch (IOException e) {      
            e.printStackTrace();
            //Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show();
            }
        }

Il tutto, ovviamente, senza scordarsi di aggiungere la riga:

Codice (XML): [Seleziona]
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
nel Manifest dell'applicazione, altrimenti il tentativo di scrittura darà eccezione  ;-)

Colgo l'occasione per complimentarmi con la scelta di aprire questa sezione UTILISSIMA per condividere porzioni di codice per semplici task. Molto veloce condividere il codice per chi l'ha prodotto e molto facile per chi ne ha bisogno, venire, leggere piccole porzioni comprensibili (si spera!) di codice per un task che serve o affine a quello di cui si ha bisogno. Very very compliments!!!  :D :D :D
« Ultima modifica: 15 Maggio 2010, 00:44:32 CEST da JD, Reason: File f = f = new File »

Offline areo

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
Re:Salvare un file su sd card (e scriverci del testo dentro)
« Risposta #1 il: 22 Gennaio 2011, 18:04:19 CET »
0
uaaaaaaaauuu grazie 1000! anche se con mezzo anno di ritardo :)

Offline deborahAndroid

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Hero
  • Sistema operativo:
    Linux
Re:Salvare un file su sd card (e scriverci del testo dentro)
« Risposta #2 il: 01 Marzo 2011, 16:14:48 CET »
0
Grazie mille! Il tuo codice mi è stato di grande aiuto :)

Offline StepGiordano

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    P500
  • Sistema operativo:
    Windows 7
Re:Salvare un file su sd card (e scriverci del testo dentro)
« Risposta #3 il: 30 Agosto 2011, 16:37:43 CEST »
0
Ottimo! ma come dovrei fare per cambiare directory di salvataggio del file? Per esempio apposto di /sdcard lo vorrei salvare su /sdcard/app

Offline Acca.Emme

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Ubuntu
Re:Salvare un file su sd card (e scriverci del testo dentro)
« Risposta #4 il: 01 Dicembre 2012, 13:31:32 CET »
0
Spero non sia una domanda banale, ma sarebbe interessante anche il read() :)

Offline tanox

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    ace
  • Sistema operativo:
    vista
Re:Salvare un file su sd card (e scriverci del testo dentro)
« Risposta #5 il: 25 Dicembre 2012, 21:15:24 CET »
0
due belle domande interessanti, anche io sarei interessato a ...

Offline Acca.Emme

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Ubuntu
Re:Salvare un file su sd card (e scriverci del testo dentro)
« Risposta #6 il: 20 Febbraio 2013, 11:44:28 CET »
0
up

Offline lunarwolf

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Sensation XE
  • Sistema operativo:
    Kubuntu - Last
Re:Salvare un file su sd card (e scriverci del testo dentro)
« Risposta #7 il: 24 Febbraio 2013, 14:26:55 CET »
+1
Ottimo! ma come dovrei fare per cambiare directory di salvataggio del file? Per esempio apposto di /sdcard lo vorrei salvare su /sdcard/app
Questo dovrebbere permettere di salvare file nella directory che vuoi nella scheda sd. Il controllo che si fa dopo è solo per controllare se esiste la cartella. Dopo basta solo creare il filewriter a cui al path si aggiunge il nome del file ed è fatta  :-)
Codice (Java): [Seleziona]
File sd = Environment.getExternalStorageDirectory();
File f;
String path = sd.getAbsolutePath() + "/TUA_DIR/";
f = new File(path);
if (!f.exists())
{
        f.mkdirs();
        try
        {
                f.createNewFile();
        }
        catch (IOException e)
        {
                Log.e("ERRORE","Errore creazione file:"+e.toString());
        }
}
FileWriter fw = new FileWriter(path+nomefile, false);
Se ti sono stato utile clicca il tanto Thanks :D