【发布时间】:2016-04-16 15:43:10
【问题描述】:
我想读出我应用的私有文件目录中每个文件的第一行。 我正在使用以下代码:
String[] f ={};
File[] files = con.getFilesDir().listFiles();
for (int i = 0; i<=files.length-1; i++){
try {
FileInputStream in = con.openFileInput(files[i].getName());
BufferedReader br = new BufferedReader(new InputStreamReader(in));
f[i]=br.readLine();
br.close();
in.close();
}catch(Exception e){
Log.e("File input reading", e.getMessage());
}
}
return f;
Logcat 总是说“E/File input reading﹕length=0; index=0”——表示文件数组的长度为0,因为listfiles()返回null,但这个目录下肯定有文件。为什么 listfiles() 不能识别它?
编辑: 我用这段代码解决了它:
public static String[] GetFiles(Context con){
File[] files = con.getFilesDir().listFiles();
String[] f = new String[files.length];
for(int i=0; i<files.length; i++){
f[i] = getFirstLine(files[i], con);
}
return f;
}
public static String getFirstLine(File f, Context con){
String ret ="error";
try {
FileInputStream in = con.openFileInput(f.getName());
BufferedReader br = new BufferedReader(new InputStreamReader(in));
ret = br.readLine();
br.close();
in.close();
}catch(Exception e){
Log.e("File input reading", e.getMessage());
}
return ret;
}
它从应用程序的私有文件目录中的每个文件中读取第一行。
【问题讨论】:
标签: java android file-handling