2017-10-12 105 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文件。