Java FileReader上的FileNotFoundException

Java FileReader上的FileNotFoundException,java,android,filereader,Java,Android,Filereader,我的应用程序需要选择一个.txt文档,打开它,然后逐行阅读。我可以获取文件路径,没有问题,但是FileReader不会打开文件,引发FileNotFoundException 我的代码: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(requestCode) { case ACTIVITY_CHOOSE_FILE: {

我的应用程序需要选择一个.txt文档,打开它,然后逐行阅读。我可以获取文件路径,没有问题,但是FileReader不会打开文件,引发FileNotFoundException

我的代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch(requestCode) {
        case ACTIVITY_CHOOSE_FILE: {
            if (resultCode == RESULT_OK){
                Uri uri = data.getData();
                filePath = uri.getPath();
                if (filePath != ""){
                    txtvFileSelected.setText(filePath);
                    try {
                        // FileReader reads text files in the default encoding.
                        FileReader fileReader = new FileReader(filePath);
                        // Always wrap FileReader in BufferedReader.
                        BufferedReader bufferedReader = null;
                                new BufferedReader(fileReader);
                        int currentLine = 0;
                        while((line = bufferedReader.readLine()) != null) {
                            System.out.println(line);
                            //TODO: add string separation into floats here.
                            currentLine++;
                        }
                        // Always close files.
                        bufferedReader.close();
                    }
                    catch(FileNotFoundException ex) {
                        System.out.println("File not found '" + filePath + "'");
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                else
                    txtvFileSelected.setText("No file selected");
            }
        }
    }
}
错误日志:

05-14 09:14:51.409 24212-24279/com.examens.gilian.robotapplication OpenGLRenderer: Initialized EGL, version 1.4
05-14 09:14:53.428 24212-24279/com.examens.gilian.robotapplication D/OpenGLRenderer: endAllActiveAnimators on 0xb8ad5368 (RippleDrawable) with handle 0xb8988670
05-14 09:14:59.046 24212-24212/com.examens.gilian.robotapplication I/System.out: File not found '/document/primary:media/Data.txt'
filePath=uri.getPath()

这不是一个文件系统路径,所以难怪什么也找不到

而是打开一个输入流并从该流中读取

InputStream is = getContentResolver().openInputStream(data.getData());

filePath=uri.getPath()。这不是文件系统路径。无法使用。而且它没有“和/或”,或者“无法理解”。
FileReader
引发异常。
BufferedReader
在该点上甚至不存在。注意,当你构造它时,你会把它扔掉,所以当你解决这个问题时,你会得到一个NPE试图调用
readLine()