Android Textdatei laden (klappt nicht)

bruce85

Bekanntes Mitglied
Hallo,
ich versuche schon seit ein Paar tagen eine Datei zu laden, bisher immer ohne Probleme mit Eclipse.
Da ich aber jetzt eine Weile mit Android Studio arbeite, klappt das aufeinmal nicht mehr.
Die Rechte sind in der AndroidManifest Datei gesetzt:
Java:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.test.test">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:screenOrientation="portrait"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
und hier der Code:
Java:
String str=null;
int ausgabe;
StringBuffer strBuffer = new StringBuffer("");
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/testordner", "test.txt");

if(file.exists()) {
    try {
        FileInputStream fis = new FileInputStream(file);
        DataInputStream in = new DataInputStream(fis);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        while( (ausgabe = br.read()) != -1) {
            strBuffer.append((char)ausgabe);
        }
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    str = strBuffer.toString();

    System.out.println("str: "+str);
}

Irgendwie sagt er mir "zugriff verweigert"
Java:
java.io.FileNotFoundException: /storage/emulated/0/testordner/test.txt: open failed: EACCES (Permission denied)

Die Datei wird ja gefunden, der fehler tritt 2 Zeile nach file.exists() auf.
Woran könnte das Problem denn liegen?

Ich danke euch schonmal für die Hilfe.

GHruss
 
Das hat mir sehr Weitergeholfen, vielen Dank für die Hilfe.
Nun funktioniert es endlich.

Noch eine Frage: Muss ich eine Abfrage zu den Versionen machen, bevor ich das hier ausführe?
Java:
public static void verifyStoragePermissions(Activity activity) {
    // Check if we have write permission
    int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if (permission != PackageManager.PERMISSION_GRANTED) {
        // We don't have permission so prompt the user
        ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                REQUEST_EXTERNAL_STORAGE
        );
    }
}
nicht das meine App ansonsten bei älteren Android Versionen abstürzt.

Danke schonmal.

Gruss
 

Zurück
Oben