我正在製作一個應用程序,該應用程序從以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