我一辈子都不知道如何弄清楚从URL检索文本文件并阅读其内容这一最简单的任务。我找到的所有代码都是5-12年前的,不起作用。由于android API 30+,主线程上的任何网络请求给予android.os.NetworkOnMainThreadException.我在这部分使用了Kotlin。
我不能使用DownloadManager(除非有一种方法可以临时存储文件并检索内容),因为文件不需要下载到本地存储,只能读取。我看到的最接近的是:Android - How can I read a text file from a url?
try {
// Create a URL for the desired page
URL url = new URL("mysite.com/thefile.txt");
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
// str is one line of text; readLine() strips the newline character(s)
}
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
但是这个密码不起作用。
2条答案
按热度按时间b4lqfgs41#
所以在三天后想跳下悬崖。我找到了答案。当然,这是在问了这个问题几分钟后(第一个问题,所以要友好。)。唯一的问题是你需要一个SSL证书的HTTPS服务器检索文件。我的服务器是http,但我可以在那里得到一个证书,并修复。为了测试,我抛出了一个github存储库并链接到原始文本文件。这是我的解决方案,如果这节省你3天倒一个给我。
Credit:answered Aug 12,2018 at 9:29 Aishik kirtaniya Android - How can I read a text file from a url?
hsvhsicv2#
这个怎么样?
如果你愿意的话,可以把它 Package 在一些异常处理中。只要您不保留对中间流的引用,它将立即符合垃圾收集的条件。流在被垃圾收集时将被关闭,因此我不需要添加一个调用来显式地关闭它。