我正在制作一个应用程序,该应用程序从以txt格式打印数据的网站读取“实时”股票报价数据。有没有更高效的方式从网络上读取数据?
- 所有我关心的是最后一行
- 我有一个计时器事件熄灭第二有史以来1/4的URL和读取数据。
- 现在这个过程大约需要10秒钟,然后每次4秒钟。
- 我想知道/希望有更好的方式来从流中读取和/或从网络获取数据。
这是我怎么从网上
URL website = new URL("www.somesite.com/blah.php?csv_format=txt");
isr = new InputStreamReader(website.openStream());
这是如何读取数据
- 我通过一整套从开始数据的读取完成,直到我得到的数据到达结尾
- 我将最后一行保存在某个变量中,并将该信息用于我的线图。
- 我停止使用readLine()并移动到使用字符数组来查看是否加快了速度。
这是我最近尝试(试图保持它简单越好)
int n = 0;
while (n != -1) {
n = isr.read(buffer, 0, 8192);
}
你最后一次尝试将打破有一天,因为你可以结束一个不完整的最后一行(想象它开始在偏移8190)。使用两个缓冲区可以做(只要该行不超过缓冲区长度)。 – maaartinus
是的,我永远不会真的这样实现它,但我认为这种方式可能是最快的,我所感兴趣的是计时。在我使用两个名为buffer和lineBuffer的缓冲区之前。 – JDiGz