簡體   English   中英

從URL讀取CSV文件

[英]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構造函數(此方法稱為構造函數,而不是方法)中,只需將endDatestartDate附加到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM