Java ';没有这样的文件或目录';Filereader上的错误-Android

Java ';没有这样的文件或目录';Filereader上的错误-Android,java,android,Java,Android,我试图在Android上的SQLite数据库中导入CSV,目的是让用户选择CSV文件 我在:FileReader file=newfilereader(fileName)上收到一个enoint错误 文件确实存在,因为我从意图中获得了路径 我的清单包括: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 我的onActivityResult(…): Intent intent = n

我试图在Android上的SQLite数据库中导入CSV,目的是让用户选择CSV文件

我在:
FileReader file=newfilereader(fileName)上收到一个enoint错误

文件确实存在,因为我从意图中获得了路径

我的清单包括:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我的onActivityResult(…)

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/csv");
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(intent, REQUEST_CVS);
if (resultCode == RESULT_OK) {
   File myPath_CSV = new  File(data.getData().toString());
   try {
       myDb.importCSV(myPath_CSV);
   } catch (IOException e) {
      e.printStackTrace();
   }
}
public void importOreilles(File fileName) throws IOException {
    Log.w(TAG, fileName.toString());
    FileReader file = new FileReader(fileName);   // Getting an error !!!
    BufferedReader buffer = new BufferedReader(file);

    String line = null;
    while ((line = buffer.readLine()) != null) {
        String[] str = line.split(",");
        insertOreille(str[0],str[1]);  // Dealing with my database
    }
}
W/DBAdapter: file:/storage/emulated/0/Download/Oreilles.csv
W/System.err: java.io.FileNotFoundException: /file:/storage/emulated/0/Download/ABCDE.csv: open failed: ENOENT (No such file or directory)
我的导入SV(文件名)

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/csv");
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(intent, REQUEST_CVS);
if (resultCode == RESULT_OK) {
   File myPath_CSV = new  File(data.getData().toString());
   try {
       myDb.importCSV(myPath_CSV);
   } catch (IOException e) {
      e.printStackTrace();
   }
}
public void importOreilles(File fileName) throws IOException {
    Log.w(TAG, fileName.toString());
    FileReader file = new FileReader(fileName);   // Getting an error !!!
    BufferedReader buffer = new BufferedReader(file);

    String line = null;
    while ((line = buffer.readLine()) != null) {
        String[] str = line.split(",");
        insertOreille(str[0],str[1]);  // Dealing with my database
    }
}
W/DBAdapter: file:/storage/emulated/0/Download/Oreilles.csv
W/System.err: java.io.FileNotFoundException: /file:/storage/emulated/0/Download/ABCDE.csv: open failed: ENOENT (No such file or directory)
我遇到的错误

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/csv");
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(intent, REQUEST_CVS);
if (resultCode == RESULT_OK) {
   File myPath_CSV = new  File(data.getData().toString());
   try {
       myDb.importCSV(myPath_CSV);
   } catch (IOException e) {
      e.printStackTrace();
   }
}
public void importOreilles(File fileName) throws IOException {
    Log.w(TAG, fileName.toString());
    FileReader file = new FileReader(fileName);   // Getting an error !!!
    BufferedReader buffer = new BufferedReader(file);

    String line = null;
    while ((line = buffer.readLine()) != null) {
        String[] str = line.split(",");
        insertOreille(str[0],str[1]);  // Dealing with my database
    }
}
W/DBAdapter: file:/storage/emulated/0/Download/Oreilles.csv
W/System.err: java.io.FileNotFoundException: /file:/storage/emulated/0/Download/ABCDE.csv: open failed: ENOENT (No such file or directory)
我尝试使用getAbsolutePath、Uri、文件。。。但是我被卡住了

谢谢你的帮助

文件确实存在,因为我从意图中获得了路径


您决定不提供实际的“意图”以及如何使用它。我猜这是
动作\u获取内容
。在这种情况下,您将返回一个
Uri
data.getData()
)。读入该
Uri
指向的内容。您可以将其包装在一个
InputStreamReader
中,以便与现有的基于
的代码一起使用。

刚刚添加了我的意图(intent.ACTION\u GET\u CONTENT)@Tibo:返回的
Uri
可以有一个
文件
内容
方案
ContentResolver
openInputStream()
将处理这两种情况,假设在
文件的情况下,
。从您的链接中,我认为我的问题是我对什么是Uri缺乏理解。我要去看看openInputStream,我还是迷路了。假设我使用
InputStream is=getContentResolver().openInputStream(Uri\u CSV)
。我应该如何使用
is
读取CSV文件的行?@Tibo:正如我在回答中所写的,您可以将其包装在
InputStreamReader
中,以便与您现有的CSV代码一起使用。或者,使用CSV库。