从网站上读取csv文件返回java.io.FileNotFoundException

时间:2016-09-24 03:58:41

标签: java eclipse csv

我正在尝试从URL中读取csv文件。但我得到java.io.FileNotFoundException。该URL适用于浏览器。请帮忙。 下面是我的csv阅读代码。

public static void main(String args[]) {


        InputStream input = null;

        try {
            input = new URL("http://prod2.riskval.com/site/table.csv​").openStream();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            Reader reader = new InputStreamReader(input, "UTF-8");
            BufferedReader br = new BufferedReader(reader);
            String data;
            try {
                data = br.readLine();
                System.out.println(data);
            } catch (IOException e) {
                e.printStackTrace();
            }

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

}

3 个答案:

答案 0 :(得分:0)

该文件似乎是问题所在。我尝试了另一个文件,它就像这样工作。

public static void main(String args[]) throws IOException {

InputStream input = null;

URL url = new URL("http://samplecsvs.s3.amazonaws.com/SalesJan2009.csv");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

String data;

data = in.readLine();
System.out.println(data);

}

答案 1 :(得分:0)

原因是你的网址有隐藏的字符,我只是尝试在浏览器中复制粘贴相同的网址,当你从MS Word或写字板或类似文件中复制文本时,它会根据this给我404。编辑你得到这些%E2%80%8B字符,表示行尾。

只需复制粘贴在sublime或任何其他显示隐藏字符的文本编辑器中的URL,您应该看到类似这样的内容

  

http://prod2.riskval.com/site/table.csv%E2%80%8B

答案 2 :(得分:0)

这应解决您的阅读问题。请研究一下。

package tttttttttttttttt;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.MalformedURLException;
import java.net.URL;

public class ss {
    public static void main(String args[]) {

        InputStream input = null;
        BufferedReader br = null;
        StringBuilder body = new StringBuilder();
        String line = null;
        try {
            input = new URL("http://www.google.com").openStream();
            System.err.println(input);
            System.err.println(input.available());
            System.err.println(input.markSupported());
            br = new BufferedReader(new InputStreamReader(input));
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.print("Captured " + br);
    }
}