我正在开发一个Android应用程序,在某个时候,我需要访问我的设备存储(不是SD卡),选择一个csv文件(通过蓝牙传输到我的手机),然后尝试在我的应用程序中读取它用于进一步处理问题。 到目前为止,我已经能够访问设备存储并从那里选择我的csv文件,但是当我尝试在我的代码中读取我的csv文件时,我不断收到以下代码:
*
/data/Download/image78.csv:打开失败:ENOENT(无此文件或 目录)
*
我正在尝试使用此代码访问设备存储
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},123);
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
Log.d("fileee","Permission granted");
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(Intent.createChooser(intent, "Open CSV"), ACTIVITY_CHOOSE_FILE1);
}
我的onActivityResult是以下
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
switch (requestCode){
case ACTIVITY_CHOOSE_FILE1:
if(resultCode==RESULT_OK){
file= new File(data.getData().getPath());
bladeimage = rd.readBladeImageBlue(file);
我正在尝试使用以下代码读取csv文件
public double[][] readBladeImageBlue(File file){
String line="";
try {
BufferedReader reader=new BufferedReader(new FileReader(file));
while ((line = reader.readLine()) != null) {
//Split by ','
String[] tokens=line.split(",");...
我的错误发生在BufferReader BufferedReader reader=new BufferedReader(new FileReader(file));
上
行并直接抛出Filenotfound类型的异常。
**我也尝试使用不同的方式读取我的csv文件来解决我的问题,但我一直遇到相同的错误**
Uri uri= data.getData();
String uristring=uri.toString();
file= new File(uristring);
String path =file.getPath();
bladeimage = rd.readBladeImageBlue(file);
并使用
读取数据File file = new File(Environment.getDataDirectory(),path);
FileInputStream inputStream=new FileInputStream(file);
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
但是我遇到了同样的错误
我的清单代码正在使用以下权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我正在使用 Samsung SM-J700H Android 6.0.1,API 23 设备和 YES ,我已请求并检查了外部存储权限。 我究竟做错了什么? 感谢您的帮助