Android FileNotFoundException

时间:2014-06-09 20:20:25

标签: java android filenotfoundexception

我将Java应用程序移植到Android,一切正常,但应用程序无法在手机上加载.csv文件。它总是给我FileNotFoundException。有人可以帮帮我吗?任何帮助表示赞赏。这是代码的错误部分:

private String path = Environment.getExternalStorageDirectory()
        .getAbsolutePath() + "/Autoliste.csv";

public Auto[] lesenAutos() {
    int size = 0;
    try {
        BufferedReader reader = new BufferedReader(new FileReader(path));
        String line = reader.readLine();
        while (line != null) {
            size++;
            line = reader.readLine();
        }
        if (size == 0)
            System.out.println("Datei ist leer");
        reader.close();
    } catch (FileNotFoundException e) {
        System.out.println("File not found");
    } catch (IOException e) {
        System.out.println("Error reading file");
    } catch (IndexOutOfBoundsException e) {
        System.out.println("Ungültige Zeichen vorhanden");
    }

    Auto[] arr = new Auto[size];
    int i = 0;
    try {
        BufferedReader reader = new BufferedReader(new FileReader(path));
        String zeile = reader.readLine();
        while (zeile != null) {
            arr[i] = new Auto();
            arr[i].setAuto(zeile);
            i++;
            zeile = reader.readLine();
        }
        reader.close();
    } catch (FileNotFoundException e) {
        System.out.println("Datei nicht gefunden");
    } catch (IOException e) {
        System.out.println("Lesefehler in Datei");
    }
    return arr;
}

谢谢,汤姆。

2 个答案:

答案 0 :(得分:4)

可能您错过了使用context.getPackageName()

添加应用程序的包名称
private String path = Environment.getExternalStorageDirectory().getPath() + context.getPackageName() +  "/Autoliste.csv";

并确保您的AndroidManifest.xml定义了下一个权限!:)

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

答案 1 :(得分:0)

我刚刚遇到这个错误,我终于意识到当我更改我在应用程序中使用的文件时,我忘了在新文件名的末尾添加'.csv'。一旦我补充说,错误就消失了。确保包含文件类型!细节决定成败。我不会添加这个答案,但我认为一些类似于我的新手可能会在路上犯同样的错误。