我正在开发一些处理HTML页面的项目。
我不想一遍又一遍地下载同一页面,所以我想在本地保存它。
我经常使用Scanner
,但Scanner
需要InputStreamReader
。
现在我设法将HTML页面保存到本地StringBuffer
,但我无法做到
此StringBuffer
与Scanner
一起使用。
我可以将此StringBuffer
用作InputStreamReader
吗?如果没有,那么我可以使用哪种方法?
答案 0 :(得分:3)
Scanner
constructor有一个Readable
。在所有Readable
实现中,CharBuffer
似乎最适合您的目的,因为您希望拥有可读和可写的源。
String string = getItSomehow();
CharBuffer buffer = CharBuffer.wrap(string);
// ...
Scanner scanner = new Scanner(buffer);
// ...
答案 1 :(得分:0)
也许有些事情如下:
new InputStreamReader(new ByteArrayInputStream(new StringBuffer().toString().getBytes()));
如果您想要这样做,您应该使用HTTP GET
标头发送If-Modified-Since
请求,以便正确检测已更改的网页。
您是否考虑过使用正确的HTTP代理?这样可以省去在应用程序中重新发明轮子的麻烦。 HTTP代理可能会表现得更好,并且可以被多个应用程序使用。