如何将文件保存到在休息URL请求中下载的某个文件夹?

时间:2015-12-29 16:59:21

标签: java file download yahoo-finance

我正在使用Yahoo的URL请求功能来下载股票数据。我找到了一个每5秒下载一次数据的java应用程序。 我无法弄清楚如何使用我在应用程序中使用的基本代码将库存数据下载到一台计算机中的某个文件夹。还有其他关于如何保存yahoo URL请求的帖子数据到某个位置但不使用我使用的相同代码格式。所有想法,源代码和解释我应该如何做的链接都会非常有帮助。谢谢你的帮助!

我的代码:

import java.awt.Desktop;
import java.net.URL;

public class Downloader {

    public static void main(String[] args) throws InterruptedException {
        for (int i = 0; i < 10; i++) {
            Thread.sleep(5000);
            try {
                Desktop.getDesktop()
                        .browse(new URL(
                                "http://finance.yahoo.com/d/quotes.csv?s=AAPL+GOOG+MSFT&f=nab")
                                .toURI());
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }
}

2 个答案:

答案 0 :(得分:1)

您可以使用Java的IO功能,您是否正在尝试编写GUI,如果没有任何特定原因可以使用AWT的桌面类?

试试这个示例代码:

URL yahooFinance = new URL("http://finance.yahoo.com/d/quotes.csv?s=AAPL+GOOG+MSFT&f=nab");
ReadableByteChannel channel = Channels.newChannel(yahooFinance.openStream());
FileOutputStream fos = new FileOutputStream("quotes.csv");
fos.getChannel().transferFrom(channel, 0, Long.MAX_VALUE);

答案 1 :(得分:1)

您也可以使用org.apache.commons.io.FileUtils

java.net.URL yahooFinance = new java.net.URL("http://finance.yahoo.com/d/quotes.csv?s=AAPL+GOOG+MSFT&f=nab");
    File f = new File("quotes.csv");
    FileUtils.copyURLToFile(yahooFinance, f);