我的程序是接收包含CSV文件的网址。我试图将其传递给文件以进一步查询,但它返回NoSuchElementException。
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();
此外,您的网址链接到gzipped文件,无法直接读取您需要先下载,ungzip和普通本地文件,或提供普通CSV文件的链接。