2017-10-12 363 views
-2

我的程序是獲取具有CSV文件的URL。我試圖將它傳遞給一個文件進行進一步的查詢,但它返回一個NoSuchElementException。如何使用Java將CSV文件下載到文件中

public static void main(String[] args) throws ParseException, IOException, URISyntaxException { 
    // TODO Auto-generated method stub 

    String web = "https://example.com/data.csv"; 
    URL content = new URL(web); 

    File file = new File(content.getPath()); 

    try { 
     Scanner inputStream = new Scanner(file); //Input file 
     String[] values = data.split(","); 
     while (inputStream.hasNext()){ 

      data = inputStream.next(); 

      values = data.split(","); 
      System.out.println(values[]; 
     } 
     inputStream.close(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 
+0

該文件正在使用錯誤的路徑。 –

回答

1

https://docs.oracle.com/javase/7/docs/api/java/net/URL.html

的getPath()獲得此URL的路徑部分。 這不是你想要的

openStream()打開到此URL的連接並返回一個InputStream以便從該連接讀取。 這就是你想要的

URL content = new URL(web); 
    InputStream stream = content.openStream(); 

    Scanner inputStream = new Scanner(stream); 
    while (inputStream.hasNext()) { 
     String data = inputStream.next(); 
     String[] values = data.split(","); 
     System.out.println(values); 
    } 
    inputStream.close(); 

而且您的網址鏈接到gzip壓縮文件,不能直接讀取你需要可以先下載它,ungzip並像對待正常的本地文件,或者提供一個鏈接到普通的CSV文件。