从Android设备读取文件

时间:2012-10-20 06:30:09

标签: android file-upload

继续我以前的帖子,upload file with relative path我尝试使用

运行
url = '/mnt/sdcard/download/XYZ.txt';
File dir = Environment.getExternalStorageDirectory();
File f_path = new File(dir, url);
InputStream  fis = null;
fis = new BufferedInputStream(new FileInputStream(f_path));

但是当我从我的Android设备上运行它时,会给我带来错误。

java.io.FileNotFoundException: /mnt/sdcard/mnt/sdcard/download/XYZ.txt (No such file or directory)

f_path的输出是'/mnt/sdcard/download/XYZ.txt'

问题出在哪里,以及如何解决?我可以观察到它正在向f_path添加mnt / sdcard。

3 个答案:

答案 0 :(得分:4)

尝试使用该代码。

url = '/mnt/sdcard/download/XYZ.txt';
File f_path = new File(url);
InputStream  fis = null;
fis = new BufferedInputStream(new FileInputStream(f_path));

这个例外已经来了,因为它自己等于

Environment.getExternalStorageDirectory();
/mnt/sdcard
祝你好运!!

答案 1 :(得分:1)

在您的网址变量上,仅使用相对路径:

url = "/download/XYZ.txt"

/mnt/sdcard将来自您的Environment.getExternalStorageDirectory();

答案 2 :(得分:0)

你必须这样做:

 File sdcard = Environment.getExternalStorageDirectory();
 File file = new File(sdcard, "/download/XYZ.txt");

这将自动获取您的文件..

之后您可以按如下方式使用它:

InputStream  fis = null;
fis = new BufferedInputStream(new FileInputStream(file.getAbsolutePath()));

这将完美地获取您文件的路径!!