F
Fujit
Neues Mitglied
- 0
Hallo zusammen,
ich versuche mittels Json Daten zu speichern und danach auszulesen.
Leider klappt das nicht. Und ich weiss nicht genau, ob ich beim Schreiben scheitere oder beim lesen oder beim beiden^^.
Mein Code:
1. Erster Fehler:
Annahme: Daten sind geschrieben worden
Das erste mal beim Eintritt in "getValues" sollten die daten im bufferReader da sein, sprich, er geht in die while-schleife rein. Das tut er aber nicht.
2. Zweiter Fehler:
Während ich die App ausführe und danach irgendwann "persistData" ausführe, dann läuft sie problemlos durch.
Immer noch während der Ausführung trete ich das zweite mal in "getValues" und stelle folgendes Verhalten fest:
Er geht in die Schleife rein.
Beim Debuggin sehe unter dem Untereintrag von bufferReader "buf" die Arrayfelder von 0 bis 99. Und unter dem ersten Feld von 0 bis 99 sehe ich tatsächlich einzelne Zeichen.
Dann geht er in die Schleife rein und führt "readLine()" und er gibt mir "null" zurück.
Wahrscheinlich überschreibe ich "meineApp.txt" wenn ich das aller ersten (und einzigen) mal mein statisches Object instanziere. Sonst würde ich diese Zeichen auch beim ersten Eintritt in "getValues" sehen und er würde in die Schleife reingehen, was er nicht tut.
Und wieso er mir beim zweiten Eintritt in die "getValues" die Zeichen, die ich bei der Appausführung eben angelegt habe zwar anzeigt aber mit "readline()" nicht zurückgibt, verstehe ich nicht.
Danke für jeden Tipp.
ich versuche mittels Json Daten zu speichern und danach auszulesen.
Leider klappt das nicht. Und ich weiss nicht genau, ob ich beim Schreiben scheitere oder beim lesen oder beim beiden^^.
Mein Code:
Code:
class myClass{
static File file = new File(f.getAbsolutePath()+"meineApp.txt");
static FileOutputStream oStream = new FileOutputStream(file);
static OutputWriter writer = new OutputStreamWriter(fileOStream);
static JSONArray jsonArray = new JSONArray();
static JSONObject jsonObct = new JSONObject();
public static void persistData(ArrayList<String> values){
for (int i = 0; i < buttons.size(); i++) {
lstButtons.get(i));
jsonObct.put("wert", values.get(i).getText().toString());
jsonArray.put(jsonObct);
}
outputWriter.append(jsonArray.toString());
outputWriter.close();
fileOStream.close();
}
public static ArrayList<String> getValues(){
ArrayList<String> buttonCaptions = new ArrayList<String>();
String dataLine = "";
bufferReader = new BufferedReader(new FileReader(file));
while ( bufferReader.readLine()!=null) {
dataLine += bufferReader.readLine();
}
}
}
1. Erster Fehler:
Annahme: Daten sind geschrieben worden
Das erste mal beim Eintritt in "getValues" sollten die daten im bufferReader da sein, sprich, er geht in die while-schleife rein. Das tut er aber nicht.
2. Zweiter Fehler:
Während ich die App ausführe und danach irgendwann "persistData" ausführe, dann läuft sie problemlos durch.
Immer noch während der Ausführung trete ich das zweite mal in "getValues" und stelle folgendes Verhalten fest:
Er geht in die Schleife rein.
Beim Debuggin sehe unter dem Untereintrag von bufferReader "buf" die Arrayfelder von 0 bis 99. Und unter dem ersten Feld von 0 bis 99 sehe ich tatsächlich einzelne Zeichen.
Dann geht er in die Schleife rein und führt "readLine()" und er gibt mir "null" zurück.
Wahrscheinlich überschreibe ich "meineApp.txt" wenn ich das aller ersten (und einzigen) mal mein statisches Object instanziere. Sonst würde ich diese Zeichen auch beim ersten Eintritt in "getValues" sehen und er würde in die Schleife reingehen, was er nicht tut.
Und wieso er mir beim zweiten Eintritt in die "getValues" die Zeichen, die ich bei der Appausführung eben angelegt habe zwar anzeigt aber mit "readline()" nicht zurückgibt, verstehe ich nicht.
Danke für jeden Tipp.