在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();
但是我正在努力进一步处理它。
或者,我可以做一些完全不同的事情来实现同样的目标吗?
我试图逐行阅读,因为我不需要所有的行。处理比将所有内容放在一个大字符串中要容易得多。
答案 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
)