私はyahoo financeから現在および過去の株価を要求するJavaソフトウェアを持っています。Javaスキャナが特定のファイルを読み取らない
他の投稿に記載されているように、yahooは価格をファイルに書き込むことができます。ファイルはスキャナで読み取ることができます。 http://finance.yahoo.com/d/quotes.csv?s=AMZ.DE&f=snl1t1c4
過去5年間にアマゾンの価格を要求するには、私が呼び出す: http://ichart.finance.yahoo.com/table.csv?s=AMZ.DE&d=3&e=20&f=2017&a=3&b=20&c=2012&g=d&ignore=.cvs
私は私のブラウザでは、これら2つのリンクをアクセスした場合、それは.CSVをダウンロードし、私は呼んでアマゾンの現在の価格を要求すること それぞれの期待されるデータを含むファイル。要求は、上記のいずれかのリンクである
private static List<String> requestStockData(String request) throws IOException {
Scanner scanner = null;
List<String> answer = new ArrayList();
try {
scanner = new Scanner(new URL(request).openStream());//no exception here
} catch (FileNotFoundException e) {
Tools.printDebugMessage("Received null-answer for request " + request);
return answer;
}
while (scanner.hasNextLine()) {//scanner.hasNextLine() returns false
String value = scanner.nextLine();
answer.add(value);
Tools.printDebugMessage("received answer from YAHOO! Finance: " + value);
}
scanner.close();
return answer;
}
:
Javaで対応するCSVファイルはfolling方法で読まれるべきです。
私はこのソフトウェアを数週間使用していて、完璧に動作しました。 しかし、それは過去のデータではもう機能しませんが、現在のデータでは問題なく動作します。
履歴データへのリンクを使用すると、スキャナは正常に開き、例外はスローされませんが、scanner.hasNextLine()は即座にfalseを返しますが、ブラウザにダウンロードされた.csvファイルは1305行です。
スキャナがヒストリカルデータの.csvファイルを受け入れないが、現在のデータを受け入れる理由を理解している人はいますか?