2016-04-20 3 views
0

Ich muss eine Datei in der SD-Karte in meinem Android-Gerät lesen und den Inhalt dieser Datei in eine andere Datei in der SD-Karte schreiben, die bereits vorhanden ist.Wie überschreiben Sie eine Datei in SD-Karte in Android?

Hier ist mein Code, um eine Datei irgendwo in der SD-Karte zu lesen.

public String readFromFile(String fileName) { 

    String ret = ""; 
    try { 

     File sdcard = Environment.getExternalStorageDirectory(); 
     //Get the text file 
     File file = new File(sdcard, fileName); 


     BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); 

     if (bufferedReader != null) { 


      String receiveString = ""; 
      StringBuilder stringBuilder = new StringBuilder(); 

      while ((receiveString = bufferedReader.readLine()) != null) { 
       stringBuilder.append(receiveString); 
      } 

      ret = stringBuilder.toString(); 
     } 
    } 
    catch (FileNotFoundException e) { 
     Log.e("login activity", "File not found: " + e.toString()); 
    } catch (IOException e) { 
     Log.e("login activity", "Can not read file: " + e.toString()); 
    } 

    return ret; 
} 

Kann jemand mir bitte sagen, wie kann ich den Inhalt dieser Datei in eine andere Datei auf der SD-Karte nach dem Lesen kopieren.

Ich möchte nicht anhängen, sondern den Inhalt der Datei zu überschreiben.

brauche ich eine Methode in diesem Format

void writeFile(String fileName, String Data){ 

//code to overwite with given data 

} 

Kann jemand bitte helfen Sie mir

Vielen Dank im Voraus.

Antwort

6
void writeFile(String fileName, String data) { 
    File outFile = new File(Environment.getExternalStorageDirectory(), fileName); 
    FileOutputStream out = new FileOutputStream(outFile, false); 
    byte[] contents = data.getBytes(); 
    out.write(contents); 
    out.flush(); 
    out.close(); 
} 

Der wichtigste Teil ist die false im Outputstream-Konstruktor. Der zweite Parameter ist append. Wenn der Wert auf "false" gesetzt ist, wird die Datei überschrieben, sofern sie existiert.

+0

der Code kompiliert gut. Aber ich bekomme eine java.lang.NullPointerException. Ich rufe die Methode so an. writeFile ("abc.txt", Daten). abc.txt ist in der SD-Karte vorhanden. Trotzdem kann die Datei nicht gefunden werden. Kannst du bitte helfen. – qualitytest

+0

Haben Sie die Berechtigung WRITE_EXTERNAL_STORAGE angefordert? Ich habe meinen Code aktualisiert, um den SD-Kartenpfad einzuschließen. –

+0

Es funktioniert jetzt, nach der Code-Bearbeitung, um den SD-Card-Pfad einzuschließen. Vielen Dank :) – qualitytest

Verwandte Themen