我是Android应用开发的新手。我试图在我的应用程序的文本视图中阅读并显示从文件选择器中选择的文本文件。但是使用以下代码我的应用程序不断崩溃。最初我在filePath = data.getData()之后放了一个toast;它正在工作,当我将filePath(其数据类型为Uri)转换为String然后放一个toast以确保Uri是否被转换为String,它工作,我在吐司中得到了文件的路径但是当我实现了我的应用程序崩溃的read_file()函数。我是新手,任何帮助都会受到赞赏。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == FILE_SELECT_CODE && resultCode == RESULT_OK && data != null && data.getData() != null) {
filePath = data.getData();
read_file(this,filePath);
}
}
public String read_file(Context context, Uri filePath) {
try {
String uriToString;
uriToString= filePath.toString();
Toast.makeText(this, uriToString, Toast.LENGTH_LONG).show();
FileInputStream fis = context.openFileInput(uriToString);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line).append("\n");
}
return sb.toString();
} catch (FileNotFoundException e) {
return "";
} catch (UnsupportedEncodingException e) {
return "";
} catch (IOException e) {
return "";
}
}