2013-03-20 11 views
9

Zastanawiam się nad tym przez dość długi czas. Próbuję pobrać dane z Yahoo!'s Stock API. Gdy korzystasz z interfejsu API, otrzymasz plik .csv. Patrzyłem na opencsv, który wydaje się idealny, z wyjątkiem Chcę uniknąć downloading and saving the file, jeśli w ogóle możliwe.Odczytaj zdalny plik .csv przy użyciu opencsv

OpenCSV, zgodnie z examples, może tylko odczytać z FileReader. Według Oracle docs on FileReader, plik musi być lokalny.


Czy można odczytać ze zdalnego pliku przy użyciu OpenCSV bez pobierania?

+2

Właściwie, to używa rodzajowy Reader, której istnieje kilka implementacje. Aka, nie * musisz * używać FileReadera. – Perception

Odpowiedz

12

CSVReader wykonuje Reader argumentu według the documentation, więc nie jest ograniczony do FileReader dla parametru.

Aby użyć CSVReader bez wcześniejszego zapisywania pliku, można użyć BufferedReader wokół strumienia ładowania danych:

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

Hmm, 'StockURL'! =' StockUrl'. –

+0

@BhargavRao Dzięki za zwrócenie na to uwagi, ale ogólnie rzecz biorąc, zachęcamy do samodzielnej edycji tego czegoś takiego! – Vulcan

+1

Tak, zwykle edytuję, gdy błąd nie jest w kodzie. Ale tutaj literówka była w kodzie. Jako uczeń Java, byłem zaskoczony, kiedy to zobaczyłem: D .... Dlatego nie chciałem go edytować i zostawiłem komentarz. Dzięki za edycję. Twoje zdrowie –