如何使用Java将CSV文件下载到文件中
问题描述:
我的程序是获取具有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();
}
}
答
从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文件。
该文件正在使用错误的路径。 –