1. Brillow, 06.12.2011 #1
    Brillow

    Brillow Threadstarter Neuer Benutzer

    Hi,

    ich schreibe gerade eine kleine App, um mich wieder in Java reinzufinden und stoße dabei im Moment auf 2 Probleme, die ich einfach nicht verstehe.

    1.
    Würde ich gerne einen String (eine Datei) lokal speichern. Dazu habe ich folgende Methoden geschrieben (einmal zum speichern, einmal zum laden).

    Code:
    try {
    			FileOutputStream fos = openFileOutput(filename[s-2], Context.MODE_WORLD_READABLE);
    			OutputStreamWriter osw = new OutputStreamWriter(fos);
    			
    			osw.write(data[s-2]);
    			
    			osw.flush();
    			osw.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			
    			clear();
    			title4.setText("Konnte Daten nicht speichern!");
    			title4.setTextColor(Color.RED);
    		}
    
    filename ist ein array, wo meine Dateinamen drinstehen, im data Array steht jeweils der String der gespeichert werden soll.

    Zum Laden:
    Code:
    private void load(int m) {
    		File datei = new File(filename[m-2]);
    		GregorianCalendar lastmod = new GregorianCalendar();
    		
    		lastmod.setTimeInMillis(datei.lastModified());
    		
    		this.setTitle("" + lastmod.get(Calendar.WEEK_OF_YEAR) + " - " + date.get(Calendar.WEEK_OF_YEAR));
    		
    		if(lastmod.get(Calendar.WEEK_OF_YEAR) == date.get(Calendar.WEEK_OF_YEAR)){
    			//Wird die App genau ein Jahr lang nicht geoeffnet, so bildet sich hier ein Fehler
    			try {
    				FileInputStream fis = openFileInput(filename[m-2]);
    				InputStreamReader isr = new InputStreamReader(fis);
    				char buffer[] = null;
    				
    				isr.read(buffer);
    				
    				data[m-2] = new String(buffer);
    				
    				fis.close();
    				
    			} catch (FileNotFoundException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    				fetchData(m);
    			} catch (IOException e){
    				e.printStackTrace();
    				fetchData(m);
    			}
    		}else{
    			fetchData(m);
    		}
    	}
    
    Das Problem ist nun: es funktioniert nicht. Es wird keine Datei erstellt, egal wie ichs auch drehe und wende. Meiner Meinung nach liegt der Fehler entweder in dem save/load kram oder in der Umrechnung der verschiedenen Datumsangaben oben in der load().

    Ich hoffe ihr könnt mir da irgendwie helfen und bitte schlagt mich nicht, wenns irgendein dummer, ersichtlicher Fehler ist ;)

    MfG
    Brillow
     
  2. Maddi, 06.12.2011 #2
    Maddi

    Maddi Android-Hilfe.de Mitglied

    Es wär einfacher wenn du den Fehler eingrenzen kannst.
    Ist die Datei den auf dem Handy (oder Emulator) nachdem du gespeichert hast?

    Wenn nicht guck mal ob die:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    gesetzt ist.

    Gruß Maddin
     
  3. DieGoldeneMitte, 06.12.2011 #3
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    LogCat wirkt Wunder! :D
     
  4. swordi, 06.12.2011 #4
    swordi

    swordi Gewerbliches Mitglied

    was ist das ? :flapper::flapper::flapper::cursing::cursing::cursing:
     
  5. Maddi, 06.12.2011 #5
    Maddi

    Maddi Android-Hilfe.de Mitglied

    [​IMG]
    :flapper:
     
  6. Brillow, 07.12.2011 #6
    Brillow

    Brillow Threadstarter Neuer Benutzer

    Danke für die Antworten, ich habs nun gefunden. Es ist nicht die Permission, die benötigt man nicht für den internen Speicher. LogCat gibt mir auch nichts aus. Habe nun aber rausgefunden, dass es daran lag, dass ich die File falsch initialisiert habe und daher das "lastModified()"-Datum immer 0 war. Richtig ist es dann so:

    Code:
    GregorianCalendar lastmod = new GregorianCalendar();
    		File datei = getFileStreamPath(filename[m-2]);	
    		
    		lastmod.setTimeInMillis(datei.lastModified());
    
     
Die Seite wird geladen...
Similar Threads Forum Datum
Lautsprecher Probleme LG G4 (H815) Forum Samstag um 17:23 Uhr
Probleme ZTE Axon7 NFC-Tag ZTE Axon 7 Forum Samstag um 18:57 Uhr
LE 2 X820 Softkey Probleme LeEco Le Max 2 (X820/X821/X822) Forum Samstag um 21:02 Uhr
[OFFEN] Probleme mit Action Floating Button Android App Entwicklung Samstag um 23:45 Uhr
htc one m9 Daten retten HTC One M9 Forum Gestern um 15:10 Uhr
Android 7 Nougat - Probleme Gesten Fingerabdrucksensor Huawei MediaPad M3 Forum Gestern um 22:42 Uhr
Update Probleme von Apps über Playstore Sony Xperia Z5 Compact Forum Heute um 09:05 Uhr
IPhone Daten zu BQ X... bq Aquaris X / X Pro Forum Heute um 13:32 Uhr
Erfahrung mit zweiter SIM Karte für Daten Ausland Huawei Mate 9 Forum Heute um 18:08 Uhr
Probleme mit Sperrbildschirm Samsung Galaxy S7 (G930F) Forum Vor 27 Minuten