2012-02-10 148 views

回答

3

你必须在整个阅读器来阅读,而只保留最后一行:

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

编辑:作为勒夫说,在他的评论,如果你知道最后一行永远不会长于(例如)500字节,您可以将HTTP请求中的Range标头设置为-500,因此只能下载最后500个字节。可以使用与上述相同的算法。

但是,我不知道,如果它将正确处理从多字节编码字符中间开始的流(如果编码是多字节的话)(如UTF-8)。使用ASCII或ISO-8859-1,您不会有任何问题。

另请注意,服务器不是被迫遵守范围请求,并可能返回整个文件。

httpConnection.setRequestProperty("Range","-500"); 
+2

如果您可以对最后一行的最大大小做出有根据的猜测,那么您可能会比这更有效率,尤其是对于大文件。 – 2012-02-10 08:32:41

+0

zh。这是唯一的方法吗?如果文件非常大,这可能会浪费太多时间 – 2012-02-10 08:45:58

+0

请参阅我的编辑答案。有关更多详细信息,请参阅http://tools.ietf.org/html/rfc2616#section-14.35.1。 – 2012-02-10 08:49:38