Datei erstellen, lesen und schreiben

  • Antworten:7
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 55

27.04.2018, 23:57:01 via Website

Hallo,
wie kann ich eine Datei erstellen? Ich habe folgendes probiert:

  String data = "HelloWorld";
  try {
        FileOutputStream fOut = openFileOutput("Test.txt",MODE_PRIVATE);
        fOut.write(data.getBytes());
        fOut.close();
        Toast.makeText(getBaseContext(),"Datei gepeichert",Toast.LENGTH_SHORT).show();
    }
    catch (Exception e) {
        // TODO Auto-generated catch block
        Log.v("",""+e.toString());
    }

Ich bekomme keine Fehlermeldung, finde die Datei aber auch nirgendwo. Wo wird die den normalerweise gespeichert?

Schonmal Danke im Vorraus.

Diskutiere mit!
Beste Antwort
  • Forum-Beiträge: 55

28.04.2018, 16:57:34 via Website

Ich habe es es jetzt über Shared Preference gemacht, das war mir echt zu blöd mit dem Datei erstellen.

Hier der Code für Leute die auch ähnliche Probleme mit dem Datei erstellen haben:

    public void HighscoreSchreiben() {
     SharedPreferences pref = getContext().getSharedPreferences("GAME",0);
     SharedPreferences.Editor editor = pref.edit();
     editor.putInt("HIGHSCORE", Punkte);
     editor.commit();
    }

   public int HighscoreLaden() {
     SharedPreferences pref = getContext().getSharedPreferences("GAME",0);
     return pref.getInt("HIGHSCORE",0);
 }
Hilfreich?
Diskutiere mit!
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.165

28.04.2018, 09:11:12 via Website

Hallo und herzlich Wilkommen hier im Forum :)

Ohne expliziten Pfad werden Dateien im System dort abgelegt wo die Prefs etc. auch liegen, d.h. in einem ohne Root nicht zugänglichen Bereich.
Damit du drauf zugreifen kannst, musst du die Datei auf die "SDCard" = Interner Speicher schreiben, dafür Brauchst du Write/REad File Permissions

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 55

28.04.2018, 13:33:27 via Website

Ich habe jetzt versucht einen Pfad einzugeben( ich möchte die Datei im internen Speicher speichern)

       File file = new File("/data/Test.txt");
       file.createNewFile();

Aber es wird keine Datei erstellt.

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 55

28.04.2018, 14:26:30 via Website

Danke für de Link. Ich habe jetzt folgendes:

       String path = getFilesDir() + "/TestText/";
      File file = new File(path);
      if(!file.isDirectory())file.mkdirs();
      path += ("Test" + ".txt");
      Log.v("File",""+getFilesDir()+path);
      Log.v("File existiert",""+file.exists());

V/File: /data/data/com.example.admin.snake/files/data/data/com.example.admin.snake/files/TestText/Test.txt
V/File existiert: true

Ist die Datei jetzt einfach nicht sichtbar?

Hilfreich?
Diskutiere mit!
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.165

28.04.2018, 15:06:47 via App

/daza/data ist immernoch intern. Was macht getFliesDir()?

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
Beste Antwort
  • Forum-Beiträge: 55

28.04.2018, 16:57:34 via Website

Ich habe es es jetzt über Shared Preference gemacht, das war mir echt zu blöd mit dem Datei erstellen.

Hier der Code für Leute die auch ähnliche Probleme mit dem Datei erstellen haben:

    public void HighscoreSchreiben() {
     SharedPreferences pref = getContext().getSharedPreferences("GAME",0);
     SharedPreferences.Editor editor = pref.edit();
     editor.putInt("HIGHSCORE", Punkte);
     editor.commit();
    }

   public int HighscoreLaden() {
     SharedPreferences pref = getContext().getSharedPreferences("GAME",0);
     return pref.getInt("HIGHSCORE",0);
 }
Hilfreich?
Diskutiere mit!
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.165

28.04.2018, 17:01:09 via App

Genau dafür sind Shared Prefs auch gedacht ;)
Gut dass du es nun lösen konntest :)

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!

Empfohlene Artikel