Java错误ENOENT(没有这样的文件或目录)
来源:爱站网时间:2021-09-16编辑:网友分享
我正在开发一个应用程序,该应用程序允许我使用打开的文件管理器在设备内搜索文件,然后将数据保存在Sqlite中。首先,我有一个寻找.txt文件的按钮。本地....
问题描述
我正在开发一个应用程序,该应用程序允许我使用打开的文件管理器在设备内搜索文件,然后将数据保存在Sqlite中。首先,我有一个寻找.txt文件的按钮。
Local.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buscarArchivo = new Intent(Intent.ACTION_OPEN_DOCUMENT);
buscarArchivo.addCategory(Intent.CATEGORY_OPENABLE);
buscarArchivo.setType("text/*");
startActivityForResult(buscarArchivo, 10);
}
});
我获取文件的路径,然后将其发送到负责定位文件和存储数据的readFile()方法
Uri uri = data.getData();
String path = uri.getPath();
path = path.substring(path.indexOf(":") + 1);
String[] texto = leerArchivo(path);
接收路径并负责读取文件的方法
private String[] leerArchivo(String path) throws FileNotFoundException {
InputStream inputStream = new FileInputStream(Environment.getExternalStorageDirectory() + "/" + path);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
int i = inputStream.read();
while (i != -1) {
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return byteArrayOutputStream.toString().split("\n");
}
但是在运行应用程序并选择文件时,它会产生以下错误
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Probando.txt: open failed: ENOENT (No such file or directory)
W/System.err: at libcore.io.IoBridge.open(IoBridge.java:452)
思路:
您是否检查过路径是否正确?也许这条线
path = path.substring(path.indexOf(":") + 1);
不重新引用实际路径。尝试直接使用绝对路径,以检查错误是否仍然存在。