【发布时间】:2017-09-21 13:35:42
【问题描述】:
我是 Java 新手,我正在尝试使用此类返回 "test.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”,
这个类得到一个空返回。
这里有人可以帮忙吗?
谢谢!
更新:
解决办法:
将我的 CSV 文件复制到项目资源文件夹:
ClassLoader classLoader = getClass().getClassLoader();
File filename = new File(classLoader.getResource("csv/test.csv").getFile());
【问题讨论】:
-
src文件夹相对于编译类的运行位置不存在 -
这里还是不行。还有什么想法吗?谢谢!
-
使用 Stream 代替 File: CSVtoArray2.class.getResourceAsStream()?
-
文件在哪里?你在 Eclipse 中运行它吗? Eclipse 在项目目录中查找文件
-
查看loading resources了解加载文件的不同方式
标签: java bufferedreader filereader