有没有更有效的方法从网络上读取数据?

时间:2014-06-13 22:42:42

标签: java performance url web readline

我正在制作一个读取"实时"从网站打印数据,以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);
    }

1 个答案:

答案 0 :(得分:0)

使用HTTP协议会更容易控制请求和响应的边界。看看HTTPUrlConnection。 Here是一个不错的样本。

编辑:

在详细审查了要求(请参阅注释)后,我建议使用Spark流式传输api来替代方法,以便使用"库存刻度数据"。