Fehler bei Download einer Textdatei

  • 3 Antworten
  • Letztes Antwortdatum
I

{I-love-Android}

Ambitioniertes Mitglied
5
Hallo Leute,
ich habe eine App in der ich eine Textdatei von Google Drive herunterlade, speicher, und anschließend auslese. Mein Problem: Wenn ich die Activity öffne die dies macht bekomme ich den Fehler, dass die Datei nicht gefunden worden konnte ( obwohl diese in einem Dateiexplorer sehr wohl angezeigt wird ), wenn ich die Activity dann geschlossen wird und erneut geöffnet klappt alles wie gewünscht. Über Hilfe jedglicher Art wäre ich wirklich sehr dankbar... Hier mein Code:
Code:
public StringBuilder textdateivongoogledriveherunterladenundalsstringzurueckgeben(final String adresse) {





Thread t;t = new Thread(new Runnable() {
@Overridepublic void run() {

StringBuilder text = new StringBuilder(); int count; try {
URL url = new URL(adresse);URLConnection conexion = url.openConnection();conexion.connect(); int lenghtOfFile = conexion.getContentLength();InputStream is = url.openStream(); if (!testDirectory.exists()) {
testDirectory.mkdir();}


if(file.exists()){
file.delete();}




FileOutputStream fos = new FileOutputStream(testDirectory + "/spruch_des_tages.txt"); byte data[] = new byte[1024]; long total = 0; int progress = 0; while ((count = is.read(data)) != -1) {
total += count; int progress_temp = (int) total * 100 / lenghtOfFile;//publishProgress(""+(int)((total*100)/lenghtOfFile)); //textviewstatusanzeige.setText("Downloading... ( " + progress + " %)");fos.write(data, 0, count);}

is.close();fos.close();} catch (Exception e) {
Log.e("ERROR DOWNLOADING", "Unable to download" + e.getMessage());}



}
});t.start();File file = new File(sdcard,"/DOWNLOAD/" + "spruch_des_tages.txt");StringBuilder text = new StringBuilder(); try {
BufferedReader br = new BufferedReader(new FileReader(file));String line; while ((line = br.readLine()) != null) {
text.append(line);}
br.close();}
catch (IOException e) {
Log.e("Download Error", e.toString());}







return text;}
 
Du startest den Thread, der die Datei downloadet (im Hintergrund) und fängst aber direkt danach an die Datei zu lesen. Die ist dann aber mit ziemlicher sicherheit noch nicht da. Du musst also warten bis der Thread fertig ist oder, besser, dich vom Hintergrund-Thread im Main Thread benachrichtigen lassen und dort dann die Datei verwenden.
 
  • Danke
Reaktionen: {I-love-Android}
Ah, OK, vielen Dank. Erscheint mir logisch was du sagst. Muss ich mir aber morgen genauer anschauen. Trotzdem schonmal vielen Dank :)
Lg
 
So, hab es so gemacht, wie du gesagt hast und hat perfekt funktioniert. Vielen Dank :)
Lg
 

Ähnliche Themen

AnnaBauer21
Antworten
6
Aufrufe
986
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten