
115122
24.08.2016, aktualisiert um 14:19:24 Uhr
Textdatei auf SD Karte auslesen funktioniert nicht (Oneplus One)
Hallo,
ich bin neu in der Welt der App Programmierung und wollte nun meine erste kleine "App" schreiben. Auf der Activity sitzen ein Button und ein TextView. Der Button soll die Textdatei öffnen und den Inhalt in das TextView übernehmen.
Hier der Code:
Zum Problem:
Lasse ich mir per System.out.println("File vorhanden") nach if(file.exists() ausgeben, funktioniert das. Das heißt für mich, dass er die Datei auf der SD findet.
Nur leider wird kein Text in den StringBuider "text" übergeben. Wenn ich mir "line" bzw. "text" per System.out.println() anzeigen lassen möchte, ist nichts drin. Im TextView erscheint dementsprechend auch nichts. Leider kann ich den Fehler nicht finden. Mehrere Tutorials schlagen mir aber diesen Code vor.
Was ich noch probiert habe, ist die Permission fürs Lesen von externen Speichermedien zu setzen:
Das hat aber auch nichts geholfen.
Hoffe, man kann mir weiterhelfen
Gruß,
lordzwieback
EDIT: Durch System out println habe ich herausgefunden, dass mit der Zeile "BufferedReader br...." etwas nicht stimmen kann. Da bleibt er hängen.
ich bin neu in der Welt der App Programmierung und wollte nun meine erste kleine "App" schreiben. Auf der Activity sitzen ein Button und ein TextView. Der Button soll die Textdatei öffnen und den Inhalt in das TextView übernehmen.
Hier der Code:
package com.example.rling.stark_inspektion;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
public class MainActivity extends AppCompatActivity {
private Button importButton;
private TextView filetext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
importButton = (Button) findViewById(R.id.import_button);
filetext = (TextView) findViewById(R.id.textView);
importButton.setText(R.string.import_button);
importButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard, "/Download/testfile.txt");
if(file.exists()) {
//filetext.setText("File exists\n");
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while((line = br.readLine()) != null) {
text.append(line);
text.append("\n");
System.out.println(line);
}
}catch (Exception e) {
}
System.out.println(text);
filetext.setText(text);
} else {
filetext.setText("File not found.");
}
}
});
}
}
Zum Problem:
Lasse ich mir per System.out.println("File vorhanden") nach if(file.exists() ausgeben, funktioniert das. Das heißt für mich, dass er die Datei auf der SD findet.
Nur leider wird kein Text in den StringBuider "text" übergeben. Wenn ich mir "line" bzw. "text" per System.out.println() anzeigen lassen möchte, ist nichts drin. Im TextView erscheint dementsprechend auch nichts. Leider kann ich den Fehler nicht finden. Mehrere Tutorials schlagen mir aber diesen Code vor.
Was ich noch probiert habe, ist die Permission fürs Lesen von externen Speichermedien zu setzen:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
Das hat aber auch nichts geholfen.
Hoffe, man kann mir weiterhelfen
Gruß,
lordzwieback
EDIT: Durch System out println habe ich herausgefunden, dass mit der Zeile "BufferedReader br...." etwas nicht stimmen kann. Da bleibt er hängen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 313440
Url: https://administrator.de/forum/textdatei-auf-sd-karte-auslesen-funktioniert-nicht-oneplus-one-313440.html
Ausgedruckt am: 15.05.2025 um 02:05 Uhr
4 Kommentare
Neuester Kommentar