在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
)