Textfile im internen Speicher

  • Antworten:3
Thomas Fischer
  • Forum-Beiträge: 1

12.09.2013, 13:07:33 via Website

Hi Leute,

ich schreibe und lese eine Datei im internen Speicher. Dazu benutze ich folgenden Code.

1private void writeInternTextFile(String fileName_s, String text_s) throws IOException
2 {
3 BufferedWriter writer = new BufferedWriter(new FileWriter(new File(getFilesDir() + File.separator + fileName_s), true));
4 writer.write(text_s);
5 writer.close();
6
7 logger.log("Wrote into: " + getFilesDir() + File.separator + fileName_s);
8 }
9
10 private String readInternTextFile(String fileName_s) throws IOException
11 {
12 FileInputStream fis = openFileInput(fileName_s);
13 Scanner scanner = new Scanner(fis,"UTF8").useDelimiter("\\z");
14 String text = scanner.hasNext() ? scanner.next() : "";
15 fis.close();
16 return text;
17 }


getFilesDir() + File.separator + fileName_s
ergibt in diesem Fall:
/data/data/de.xy.orga/files/text.txt

Jedoch finde ich die Datei nicht! Ich benutze den ES File Explorer direkt am Handy sowie DDMS unter Eclipse und der Order data ist leer.
Wie komme ich an die Datei?

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

12.09.2013, 14:46:16 via Website

Hi,

interner Speicher ist intern. Ohne Root kommst Du da von außen nicht drauf. Wenn die Datei außerhalb Deiner App weiterverarbeitet werden soll, musst Du sie von Deiner App heraus auf einen externen Speicher ablegen.

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
LitteM
  • Forum-Beiträge: 141

12.09.2013, 17:51:06 via Website

Zieh mal kurz das Kabel das das Gerät mit dem Pc verbindet. Normalerweise solltest du es spätestens über DDMS in Eclipse im jeweiligen Ordner sehen können.

@Carsten: Ich habe mein Tablet nicht gerootet, und speichere in meiner App ein File unter diesem Pfad: Environment.getExternalStorageDirectory().toString()+"/Android/data/"+getPackageName()+"/files/"

Das File kann ich über DDMS oder über den Explorer am Computer einsehen. Ich hab keine SD-karte in meinem Gerät. Finde das file in DDMS unter sowas wie "mnt/shell/emulated/0/" - habe das Gerät nicht hier und kanns nicht nachkontrollieren. Ist dies nicht der interne Speicher?

Nach allen offiziellen informationen soll man da ja nie drankommen:
"You can save files directly on the device's internal storage. By default, files saved to the internal storage are private to your application and other applications cannot access them (nor can the user). When the user uninstalls your application, these files are removed."

— geändert am 12.09.2013, 17:55:15

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

12.09.2013, 18:27:06 via App

ExternalStorage ist natürlich nicht der interne Speicher. Sieht man doch schon am Namen...!?

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Christianimpjor

Antworten