我试图从android上的特定文件夹中读取特定文件,然后将其读入SQLite数据库。当我从资源文件夹中获取数据库时,对数据库的读取工作正常(但由于文件将随时更改,因此无法完成最终构建)。但是,由于找不到实际访问该文件的文件,我一直存在问题。
在设备上,文件的路径显示为" / storage / emulated / 0 / Wellpro"文件名是" orfice.txt"。
目前我访问该文件的代码是从大约3个或4个不同来源汇总而来的,因为我还没有找到任何具体内容。
String fileName = "/storage/emulated/0/Wellpro/orfice.txt";
String path = Environment.getExternalStorageDirectory()+fileName;
InputStream is = new FileInputStream(path);
BufferedReader buffer = new BufferedReader(new InputStreamReader(is, "UTF-8"));
非常感谢任何帮助。
感谢。
答案 0 :(得分:1)
getAbsolutePath()为您提供SD卡的完整路径。
尝试
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";
// check if file path exist then read the file
File f = new File(baseDir + File.Separator + fileName);
FileInputStream fiStream = new FileInputStream(f);
答案 1 :(得分:0)
你的第一个错误是文件名应该是“orfice.txt”,因为Environment.getExternalStorageDirectory()为你提供了路径。请关注@ Kathi的解决方案,这很好。
如果您仍然遇到问题,请确保添加了访问外部存储所需的适当权限。如果您正在为API< 23进行开发,请向Android Manifest添加以下权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
如果您正在开发API = 23,则应在运行时请求权限。请查看https://developer.android.com/training/permissions/requesting.html以获取有关如何操作的详细信息。