所以我的程序是这样的: 它从保管箱下载.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和其他解析器,我已经尝试过,我想实现我自己的解析器)。
谢谢!
答案 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");