java.io.FileNotFoundException 使用 Yahoo API
java.io.FileNotFoundException when using Yahoo API
我想获取 APPL 的历史库存数据列表,但无法获取。
我的函数如下:
public void StockDownloader(String symbol, GregorianCalendar start, GregorianCalendar end ){
dates = new ArrayList<GregorianCalendar>();
opens = new ArrayList<Double>();
highs = new ArrayList<Double>();
lows = new ArrayList<Double>();
closes = new ArrayList<Double>();
volume = new ArrayList<Integer>();
adjcloses = new ArrayList<Double>();
String url = "http://real-chart.finance.yahoo.com/table.csv?s="+symbol+
"&a="+start.get(Calendar.MONTH) +
"&b="+start.get(Calendar.DAY_OF_MONTH) +
"&c="+start.get(Calendar.YEAR) +
"&d="+end.get(Calendar.MONTH) +
"&e="+end.get(Calendar.DAY_OF_MONTH) +
"&f="+end.get(Calendar.YEAR) +
"&g=d&ignore=.csv";
try{
URL yahoofinance = new URL(url);
URLConnection data = yahoofinance.openConnection();
Scanner input = new Scanner(data.getInputStream());
if(input.hasNext()){
input.nextLine();
}
while(input.hasNextLine()){
String line = input.nextLine();
System.out.println(line);
}
}catch(Exception e){
System.err.println(e);
}
这就是我调用函数的方式:
GregorianCalendar start = new GregorianCalendar(2000, 12, 12);
GregorianCalendar end = new GregorianCalendar(2013, 12, 2);
StockDownloader("APPL",start,end);
我得到的错误是:
java.io.FileNotFoundException: http://real-chart.finance.yahoo.com/table.csv?s=APPL&a=0&b=12&c=2001&d=0&e=2&f=2014&g=d&ignore=.csv
请注意 URL 中的错误与我的参数不同。我请求了 2000 年的数据,但在 return URL 中显示的是 2001 年。
我的代码有什么问题,我应该如何解决这个问题?提前致谢。
一切都很好...除了以 0 开头的月份,所以从 12 月开始使用 11 而不是 12。
GregorianCalendar start = new GregorianCalendar(2000, 11, 12);
GregorianCalendar end = new GregorianCalendar(2013, 11, 2);
我想获取 APPL 的历史库存数据列表,但无法获取。
我的函数如下:
public void StockDownloader(String symbol, GregorianCalendar start, GregorianCalendar end ){
dates = new ArrayList<GregorianCalendar>();
opens = new ArrayList<Double>();
highs = new ArrayList<Double>();
lows = new ArrayList<Double>();
closes = new ArrayList<Double>();
volume = new ArrayList<Integer>();
adjcloses = new ArrayList<Double>();
String url = "http://real-chart.finance.yahoo.com/table.csv?s="+symbol+
"&a="+start.get(Calendar.MONTH) +
"&b="+start.get(Calendar.DAY_OF_MONTH) +
"&c="+start.get(Calendar.YEAR) +
"&d="+end.get(Calendar.MONTH) +
"&e="+end.get(Calendar.DAY_OF_MONTH) +
"&f="+end.get(Calendar.YEAR) +
"&g=d&ignore=.csv";
try{
URL yahoofinance = new URL(url);
URLConnection data = yahoofinance.openConnection();
Scanner input = new Scanner(data.getInputStream());
if(input.hasNext()){
input.nextLine();
}
while(input.hasNextLine()){
String line = input.nextLine();
System.out.println(line);
}
}catch(Exception e){
System.err.println(e);
}
这就是我调用函数的方式:
GregorianCalendar start = new GregorianCalendar(2000, 12, 12);
GregorianCalendar end = new GregorianCalendar(2013, 12, 2);
StockDownloader("APPL",start,end);
我得到的错误是:
java.io.FileNotFoundException: http://real-chart.finance.yahoo.com/table.csv?s=APPL&a=0&b=12&c=2001&d=0&e=2&f=2014&g=d&ignore=.csv
请注意 URL 中的错误与我的参数不同。我请求了 2000 年的数据,但在 return URL 中显示的是 2001 年。
我的代码有什么问题,我应该如何解决这个问题?提前致谢。
一切都很好...除了以 0 开头的月份,所以从 12 月开始使用 11 而不是 12。
GregorianCalendar start = new GregorianCalendar(2000, 11, 12);
GregorianCalendar end = new GregorianCalendar(2013, 11, 2);