2013-03-20 110 views
9

我一直在思考这个问题的时间相当长。我试图从Yahoo!'s Stock API下载数据。当你使用API​​时,它会给你一个.csv文件。我一直在看OpenCSV,这似乎是完美的,除了我想尽量避免downloading and saving the file,如果可能的话使用opencsv读取远程.csv文件

OpenCSV根据examples只能从FileReader中读取。根据Oracle的docs on FileReader,该文件需要是本地的。


是否可以使用OpenCSV从远程文件中读取而无需下载?

+2

事实上,它采用的是通用的阅读器,其中有几种实现。又,你*不*必须使用FileReader。 – Perception 2013-03-20 01:37:42

回答

12

CSVReader需要Reader参数根据the documentation,所以它限制为FileReader为参数。

要使用CSVReader而不先保存文件,你可以使用一个BufferedReader周围加载数据流:

URL stockURL = new URL("http://example.com/stock.csv"); 
BufferedReader in = new BufferedReader(new InputStreamReader(stockURL.openStream())); 
CSVReader reader = new CSVReader(in); 
// use reader 
+0

嗯,'StockURL'!='StockUrl'。 – 2016-11-18 09:12:53

+0

@BhargavRao感谢您注意到这一点,但一般情况下,您可以自行编辑它,就像这样! – Vulcan 2016-11-18 19:50:39

+1

是的,我通常编辑错误不在代码中。但是这里的错字是在代码中。作为Java的学习者,当我看到:D ....时,我吃了一惊,这就是为什么我不想编辑它并留下评论。感谢您编辑它。干杯 – 2016-11-18 19:52:54