Android选择特定文件位置

时间:2016-08-04 18:52:53

标签: android file file-read file-not-found

我试图从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"));

非常感谢任何帮助。

感谢。

2 个答案:

答案 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以获取有关如何操作的详细信息。