我将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;
}
谢谢,汤姆。
答案 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'。一旦我补充说,错误就消失了。确保包含文件类型!细节决定成败。我不会添加这个答案,但我认为一些类似于我的新手可能会在路上犯同样的错误。