阅读下载的文本文件 - Android

时间:2014-04-10 17:37:36

标签: android file text inputstream

所以我的程序是这样的: 它从保管箱下载.txt文件并将其保存到下载目录。

Uri uri = Uri.parse(file);
DownloadManager.Request r = new DownloadManager.Request(uri);

// This put the download in the same Download dir the browser uses
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "upload");

r.allowScanningByMediaScanner();

// Start download
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(r);

代码工作正常,它会下载名为upload.txt的文件。 所以现在我想从中读取。我一直在寻找一些代码,似乎没有任何工作......
这是我当前的代码,它抛出一个FileNotFoundException,但文件位于那里 有什么提示吗?

String text="";
    FileInputStream Fin=new FileInputStream(Environment.DIRECTORY_DOWNLOADS+"upload");
    byte[] b=new byte[100];
    Fin.read(b);
    text=new String(b);
    Fin.close();

Ofc我尝试过“upload.txt”,甚至“/ upload”和“/upload.txt”,但仍然没有。
如果有人可以给我读取文本文件的代码,它会很棒,或者如果有人可以给我一个代码,可以从源代码形成一个HTML网站(没有JSOUP和其他解析器,我已经尝试过,我想实现我自己的解析器)。 谢谢!

1 个答案:

答案 0 :(得分:1)

更改

FileInputStream Fin=new FileInputStream(Environment.DIRECTORY_DOWNLOADS+"upload");

FileInputStream Fin=new FileInputStream(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "upload"));

您应该使用Environment.getExternalStoragePublicDirectory来获取路径。


或者如果你更喜欢,

FileInputStream Fin=new FileInputStream(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/upload");

更改

r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "upload");

也是

r.setDestinationInExternalPublicDir(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "upload");