Hallo zusammen,
ich schreibe ein gefühltest JsonArray in eine Textdatei.
Komischeweise funktioniert das Lesen bzw. Schreiben (ich weiss eben nicht was) nur beim ersten mal nicht.
z.B: ich schreibe in die Datei "abc" rein. Dann lese ich es auch und es gibt Nichts zum Auslesen.
Dann schreibe ich in die selbe Datei noch mal "adf" rein und schon kann man "adf" aus der Datei auslesen, obwohl ich nichts am Code verändere....
So schreibe ich:
und so lese ich:
Beides funktioniert nach dem zweiten Speichervorgang.
Wenn ich das erste mal was speichere und direkt auslese, sagt er, dass es nichts gibts.
ich schreibe ein gefühltest JsonArray in eine Textdatei.
Komischeweise funktioniert das Lesen bzw. Schreiben (ich weiss eben nicht was) nur beim ersten mal nicht.
z.B: ich schreibe in die Datei "abc" rein. Dann lese ich es auch und es gibt Nichts zum Auslesen.
Dann schreibe ich in die selbe Datei noch mal "adf" rein und schon kann man "adf" aus der Datei auslesen, obwohl ich nichts am Code verändere....
So schreibe ich:
Java:
public void saveExpense(String ort, HashMap<String, String> koordinaten) {
try {
Iterator<Map.Entry<String,String>> iterator= expenses.entrySet().iterator();
jsonArray = new JSONArray();
String tmpKey = null;
while(iterator.hasNext())
{
jsonObct = new JSONObject();
tmpKey = iterator.next().getKey();
jsonObct.put(ort, tmpKey+"_"+koordinaten.get(tmpKey));
jsonArray.put(jsonObct);
}
File myFile = new File(file.getAbsolutePath()+"/"+category+".txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.write(jsonArray.toString());
myOutWriter.close();
fOut.close();
/*File myFile = new File(file.getAbsolutePath()+"/"+ort+".txt");
Das selbe passiert auch mit dem FileWriter
myFile.createNewFile();
FileWriter fWriter = new FileWriter(myFile);
fWriter.write(jsonArray.toString());
fWriter.close();*/
} catch (Exception e) {
// TODO: handle exception
}
}
und so lese ich:
Java:
public HashMap<String, String> getKoordinaten(String ort) throws IOException, FileNotFoundException, JSONException{
FileReader fReader = null;
HashMap<String, String> koordinaten= new HashMap<>();
File f = new File(file.getAbsolutePath()+"/"+ort+".txt");
/*
if (f.exists() && !f.isDirectory()) {
fReader = new FileReader(file.getAbsolutePath()+"/"+ort+".txt");
}
*/
File myFile = new File(file.getAbsolutePath()+"/"+ort+".txt");
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn));
//bufferReader = new BufferedReader(fReader);
String tmp=null;
StringBuilder sb = new StringBuilder();
//Beim ersten Auslesen kann er hier nichts finden. Nach dem zweiten Speichervorgang kann er hier was //auslesen
while ((tmp = myReader.readLine()) != null) {
sb.append(tmp);
}
myReader.close();
return expenses;
}
Beides funktioniert nach dem zweiten Speichervorgang.
Wenn ich das erste mal was speichere und direkt auslese, sagt er, dass es nichts gibts.