Datei erstellen, lesen und schreiben

  • Antworten:7
  • Bentwortet
dwjiidnsw
  • Forum-Beiträge: 58

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.

Kommentieren
Beste Antwort
dwjiidnsw
  • Forum-Beiträge: 58

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?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

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?
dwjiidnsw
Kommentieren
dwjiidnsw
  • Forum-Beiträge: 58

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?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

28.04.2018, 13:49:55 via App

/data ist aber inter , da hast du keinen Zugriff..

Du musst die das "external Diectory" als Root nehmen und deine Ordnerstruktur dann darunter:
https://stackoverflow.com/a/21611459

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

Hilfreich?
dwjiidnsw
Kommentieren
dwjiidnsw
  • Forum-Beiträge: 58

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?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

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?
dwjiidnsw
Kommentieren
Beste Antwort
dwjiidnsw
  • Forum-Beiträge: 58

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?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

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?
dwjiidnsw
Kommentieren