Autore Topic: salvare stringa in file txt in memoria esterna  (Letto 391 volte)

Offline aeroxr1

  • Utente junior
  • **
  • Post: 76
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    window 8.1
salvare stringa in file txt in memoria esterna
« il: 26 Settembre 2014, 16:30:41 CEST »
0
ciao,
per salvare una stringa creata in un file txt ho usato questa funzione creata da un mio compagno.  Ma credo di aver fatto casino, perchè funziona solo con il tablet collegato al pc. Se lo faccio con il tablet staccato mi si pianta l'applicazione. COsì non so nemmeno come usare il debugger -.-"



Codice (Java): [Seleziona]
public class MyWriter
{
    File myFile;
    FileOutputStream fOut;
    OutputStreamWriter myOutWriter;

    public MyWriter()
    {
       
        try
        {
                //myFile = new File(Environment.getExternalStorageDirectory()+"/download/AngoliLetti.txt");
                 myFile = new File(Environment.getExternalStoragePublicDirectory(
                            Environment.DIRECTORY_DOWNLOADS), "AngoliLetti.txt");
                open();
        }
        catch (Exception e)
        {
                Log.i("MyWriter", "gottachatchemon!");
                e.printStackTrace();
        }
    }

    void write(String data)throws IOException
    {
        //myOutWriter = new OutputStreamWriter(fOut);
        //myOutWriter.append(data);
        myOutWriter.write(data);
        //ho levato il commento alla riga sottostante
        close();
    }

    void open()throws IOException
    {
        fOut = new FileOutputStream(myFile);
        myOutWriter = new OutputStreamWriter(fOut);
    }

    void close()throws IOException
    {
        myOutWriter.close();
        fOut.close();
        MediaScannerConnection.scanFile(MyApplication.getAppContext(), new String[] { myFile.getAbsolutePath() }, null, null);
    }
}

Non mi sono occupato io della scrittura, quindi è per quello che ho usato la classe del mio compagno. Però poichè mi da problemi, vorrei capire se ha sbagliato qualcosa o meno :/ Lui ha detto che è tutto ok... boh..

« Ultima modifica: 26 Settembre 2014, 19:40:00 CEST da aeroxr1 »

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:salvare stringa in file txt in memoria esterna
« Risposta #1 il: 27 Settembre 2014, 18:52:36 CEST »
0
Se devi scrivere una stringa in un file txt ti conviene utilizzare le classi: BufferedWriter,FileWriter.
ti faccio un esempio:
Codice (Java): [Seleziona]
File f = new File(Enviroment.getExternalStorage....);
BufferedWriter bfw = new BufferedWriter(new FileWriter(f));

bfw.write(str);
bfw.newLine(); //per avere una stringa per ogni riga
bfw.close o bfw.flush

Puoi scegliere quale utilizzare delle due in base a cosa devi fare, la flush e la close sono fondamentali, se non le fai eseguire il file non viene creato, se poi vuoi scrivere in append(cioè ogni volta non ricrei il file), basta aggiungere true dopo f nel FileWriter non so se mi sono spiegato bene.

Fammi Sapere
Chi non progetta la sicurezza , programma il fallimento! K.M