Autore Topic: sovrascrivere file  (Letto 489 volte)

Offline sole30

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    MAC OS X 10.8
sovrascrivere file
« il: 29 Gennaio 2016, 21:40:29 CET »
0
Buonasera,
dovrei scrivere un metodo per cui se un file non esiste lo crea altrimenti se già esiste lo sovrascrive. Per ora quello che sono riuscita a fare è che se il file esiste accoda i nuovi dati a quelli già esistenti, ma a me serve che vengano eliminate ogni volta le vecchie informazioni per raccogliere le nuove. Esiste un metodo per realizzare questo?
Quello che sto utilizzando ora è questo:


public void openWriter() {
        String filename = sensor + ".log";
        String header = "";
        try {
            File file = new File(Environment.getExternalStorageDirectory(), filename);
            if (!file.exists()) {
                header = Constants.LOG_HEADER;
                file.createNewFile();
            }
            out = new BufferedWriter(new FileWriter(file, true));
            out.append(header);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


Post unito: 29 Gennaio 2016, 21:53:10 CET
Forse ho risolto eliminando "true".Grazie lo stesso
« Ultima modifica: 29 Gennaio 2016, 21:53:10 CET da sole30, Reason: Merged DoublePost »

Offline bolobolo

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
Re:sovrascrivere file
« Risposta #1 il: 05 Febbraio 2016, 10:02:01 CET »
0
potresti usare un file temporaneo oppure un file qualsiasi. Ad esempio se vuoi eliminare una linea dal file io ho fatto questo:

Codice (Java): [Seleziona]
FileInputStream fileI = sourceActivity.openFileInput(fileName);
                InputStreamReader inputR = new InputStreamReader(fileI);
                BufferedReader b = new BufferedReader(inputR);

                FileOutputStream fileO = sourceActivity.openFileOutput(TEMP,Context.MODE_APPEND);
                PrintWriter pw = new PrintWriter(fileO);

                String line;
                while( (line=b.readLine()) != null)
                {
                    if( line.equals(miaLineaDaEliminare) )
                    {
                        continue; //NON NECESSARIO
                    }
                    else
                    {
                        pw.println(line);
                    }
                }

                File newFile = new File(sourceActivity.getFilesDir(), TEMP);
                if(! ( newFile.renameTo(new File(sourceActivity.getFilesDir(),fileName)) ) )
                    throw new Exception("Rename Error");

                pw.close();
                fileO.close();
                b.close();
                inputR.close();
                fileI.close();