GAE:我如何逐行阅读URL响应?

时间:2010-11-14 22:35:39

标签: java google-app-engine

在Google App Engine中,我尝试从网址读取.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 []
byte[] content = response.getContent();

但是我正在努力进一步处理它。

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

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

1 个答案:

答案 0 :(得分:2)

您可以尝试:

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