gpt4 book ai didi

Java 扫描器不读取特定文件

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

我有一个java软件,它可以从雅虎财经请求当前和历史股票价格。

正如其他帖子中所述,雅虎可以将价格写入文件,该文件可以由扫描仪读取。要请求亚马逊的当前价格,我调用: 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

如果我在浏览器中访问这两个链接,它会下载一个 .csv 文件,其中包含每个链接的预期数据。

在java中,应通过以下方法读取相应的.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;
}

其中请求是上面的链接之一。

我使用这个软件几个星期了,它运行得很好。但最近几天它不再适用于历史数据,但它适用于当前数据。

使用历史数据的链接,扫描仪将正常打开并且不会抛出异常,但scanner.hasNextLine()将立即返回false,但用我的浏览器下载的.csv文件有1305行。

你们中有人了解为什么扫描仪不再接受历史数据的 .csv 文件但接受当前数据吗?

最佳答案

使用“https”更新您的网址,然后重试。

旧: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

新:https://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

received answer from YAHOO! Finance: Date,Open,High,Low,Close,Volume,Adj Close
received answer from YAHOO! Finance: 2017-04-19,844.95,849.35,842.90,847.90,1700,847.90
received answer from YAHOO! Finance: 2017-04-18,849.50,851.00,841.25,845.00,3100,845.00
received answer from YAHOO! Finance: 2017-04-17,839.90,839.90,839.90,839.90,000,839.90

关于Java 扫描器不读取特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43519821/

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