代码之家  ›  专栏  ›  技术社区  ›  Zeca Novaes

bufferedReader仅读取本地csv文件

  •  0
  • Zeca Novaes  · 技术社区  · 8 年前

    我是Java新手,我试图使用这个类返回 “测试.csv”

    public class CSVtoArray2 {
    
        public static final String filename = "C:\\eclipse\\workspace\\project\\src\\main\\webapp\\resources\\csv\\test.csv";
    
    
        public String testMethod() throws IOException {
            BufferedReader wr = null;
    
            try {
    
                wr = new BufferedReader(new FileReader(new File(filename)));
    
                StringBuffer stringBuffer = new StringBuffer();
                String line;
                while ((line = wr.readLine()) != null) {
                    stringBuffer.append(line);
                    stringBuffer.append("\n");
                }
                wr.close();
                return stringBuffer.toString();
            } finally {
                wr.close();
            }
        }
    }
    

    当我改变时

    “C:\eclipse\workspace\project\src\main\webapp\resources\csv\test .csv“ 至“/resources/csv/test.csv”,

    该类得到null返回。

    谢谢

    更新:

    解决方案:

    ClassLoader classLoader = getClass().getClassLoader();
    File filename = new File(classLoader.getResource("csv/test.csv").getFile());
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Oleg Cherednik    8 年前
    org.apache.commons.io.IOUtils.toString(CSVtoArray2.class.getResourceAsStream("/csv/test.csv"), Charset.forName("UTF-8")))
    

    这很棘手,资源的根路径是什么。在Eclipse中,您可以将某些文件夹(例如webapp/resource)标记为 文件夹当您构建jar文件时,资源文件夹内容将位于根目录中。因此,如果您从 .

    我不使用相对路径,所以您可以查看 open resource with relative path in java