在Google App Engine中,我尝试从URL读取.txt文件。因为允许的最大大小为1MB并且文件稍大,所以我使用的是here所述的替代方法。

所以,我想做的是:

FetchOptions fo = FetchOptions.Builder.allowTruncate().doNotFollowRedirects();
HTTPRequest request = new HTTPRequest(url,HTTPMethod.GET,FetchOptions.Builder.allowTruncate());
URLFetchService service = URLFetchServiceFactory.getURLFetchService();
HTTPResponse response = service.fetch(request);


现在的问题是,我如何逐行阅读此响应?我正在尝试处理每一行,因为源文件是一个简单的文本文件,因此应该以某种方式可能。

我可以得到一个字节[]

byte[] content = response.getContent();


但我正在努力对其进行进一步的处理。

或者,我可以做一些完全不同的事情来实现同一件事吗?

我正在尝试逐行阅读它,因为我不需要所有的行。与将所有内容放入一个大字符串相比,处理要容易得多。

最佳答案

你可以试试:

ByteArrayInputStream bais = new ByteArrayInputStream(content);
BufferedReader reader = new BufferedReader(new InputStreamReader(bais, "utf-8"));

String line = null;
while ((line = reader.readLine()) != null) {
 ...
}


或者,您可以使用IOUtils并调用IOUtils.lineIterator(reader)(其中读者是InputStreamReader

07-24 09:37
查看更多