[英]Reading csv file from url
我想從url讀取csv文件(股票數據),但是具有可變的開始和結束日期(作為輸入),有什么辦法可以做到這一點? 我已經使用靜態日期完成了此操作,但是我已經開始了,但無法繼續。
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class StockData {
public StockData(String symbol, GregorianCalendar start, GregorianCalendar end) {
String url = "https://quotes.wsj.com/fx/AEDUSD/historical-prices/download?MOD_VIEW=page&num_rows=300&startDate=12/01/2017&endDate=12/26/2018";
try {
URL rowdata = new URL(url);
URLConnection data = rowdata.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.out.print(e);
}
}
public static void main(String[] args) {
String symbol = new String();
GregorianCalendar start = new GregorianCalendar(2018, 12, 12);
GregorianCalendar end = new GregorianCalendar(2018, 12, 18);
StockData test = new StockData(symbol, start, end);
}
}
我在這里代表這個想法,因此您可以進行編碼,因為這些更改很小
首先使用`Scanner對象,它從用戶讀取輸入
public static void main(String[] args) {
String symbol = new String(); //no need this
Scanner sc = new Scanner(System.in):
//read user input using scanner object
String start = //user input
String end = //user input
StockData test = new StockData(symbol, start, end);
}
在
StockData
構造函數(此方法稱為構造函數,而不是方法)中,只需將endDate
和startDate
附加到url
public StockData(String symbol, String start, String end) {
String url = "https://quotes.wsj.com/fx/AEDUSD/historical-prices/download?MOD_VIEW=page&num_rows=300&startDate="+start+"+&endDate="+end;
try {
URL rowdata = new URL(url);
URLConnection data = rowdata.openConnection();
Scanner input = new Scanner(data.getInputStream());
if (input.hasNext()) // remove
input.nextLine(); //remove
while (input.hasNextLine()) {
String line = input.nextLine();
System.out.println(line);
}
}
catch (Exception e) {
System.out.print(e);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.