gpt4 book ai didi

java - 在android java中从互联网获取txt文件的一部分

转载 作者:行者123 更新时间:2023-12-02 07:47:04 25 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序从固定网页获取信息并将信息转换为图表。我尝试接收的网页是一个 txt 文件。问题是txt文件太大了,在java中把文件变成String需要一分多钟的时间。我为此使用的代码如下:

HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://winterberg.dnsalias.net:9000/log.txt");
ResponseHandler<String> handler = new BasicResponseHandler();
response = client.execute(httpGet, handler);

txt 文件代表房屋内温度的历史记录。自 2011 年 8 月 11 日起,每小时都会自动向文本文件添加一行文本,因此它包含超过 6000 行。但是,只有上个月的信息与申请相关。有没有办法从文件末尾开始读取,直到读取一定数量的行?

或者有其他方法可以加快文件读取速度吗?

我无法更改文本文件。

最佳答案

您可以完整读取文本文件并保存读取的字节数。因此,在下一次调用中,您可以读取从存储的数字开始的字节范围,并在下载此特定字节后,将其附加到原始文本文件中。您就有了用新行更新的文本文件。

您可以使用如下代码部分来获取字节范围:

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet get = new HttpGet(new URI(...));
get.addHeader("Range", "bytes=" + start + "-");
InputStream in = httpClient.execute(get).getEntity().getContent();

对于追加文件,您可以使用追加模式打开文件,并在其上写入新字节:

FileOutputStream fos = new FileOutputStream("file.txt", true); //true means openning file in append mode

byte[] buffer = new byte[1024];
int nread = -1;
while((nread != in.read(buffer, 0, 1024))
fos.write(buffer, 0, nread);

in.close();
fos.close();

希望对你有用:)

关于java - 在android java中从互联网获取txt文件的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10675683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com