您如何读取下载到浏览器中的CSV文件的内容?

时间:2019-05-21 21:12:38

标签: java html spring spring-boot

我需要使用Java读取托管CSV文件的内容。在托管CSV的网址上点击此文件,即可将文件下载到浏览器中。如何访问此文件并读取其内容,而无需在本地进行任何操作?

目前,我有:

    try {

        URL url = new URL("URL here");
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
        CsvReader products = new CsvReader(in);

        products.readHeaders();

        while (products.readRecord()) {
            products.get("ID"));
            }
        }
        products.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

我希望products.get(“ ID”))从ID列检索数据,而不是得到包含符号和乱码的字符串。

有人对我如何实现这一目标有任何想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这里要注意的两个要点

  1. BufferedReader是Java中的一个类,它从字符输入流中读取文本,并缓冲字符,以便有效读取字符,行和数组。REFER HERE
  2. BufferedReader中的每一行都是一个字符串输入流,您需要使用分隔符将字符串分隔开,对于CSV文件,通常使用','

像这样尝试,希望这就是您要在这里完成的事情。

try {

        URL url = new URL("URL here");
       URLConnection urlConn = url.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(
                    ((URLConnection) urlConn).getInputStream()));

         String row;
         while ((row = in.readLine()) != null) {
            String[] values = row.split(","); // separator
            System.out.println("Product ID= " +values[0]); // change 0 to the column index of the file 

            }

       in.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

谢谢, 快乐编码<3!