bufferedReader只读本地csv文件
问题描述:
我是新来的Java和我试图用这个类来返回“test.csv”的内容。这只适用于当我使用本地文件的路径。bufferedReader只读本地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:\日食\工作区\项目的\ src \主\ web应用程序\资源\ CSV \测试 的.csv” 为“/resources/csv/test.csv “,
该类获得空返回。
任何人在这里谁可以帮忙吗?
谢谢!
UPDATE:
解决方案:
复制我的CSV文件的项目资源文件夹:
ClassLoader classLoader = getClass().getClassLoader();
File filename = new File(classLoader.getResource("csv/test.csv").getFile());
答
org.apache.commons.io.IOUtils.toString(CSVtoArray2.class.getResourceAsStream("/csv/test.csv"), Charset.forName("UTF-8")))
这是棘手的,什么是对资源的根路径。在Eclipse中,您可以将某个文件夹(例如webapp/recource)标记为资源文件夹。而当你建立jar文件时,资源文件夹的内容将在根目录中。因此,如果您从/开始资源路径,则表示jar的根(即资源文件夹的根目录)。
我不使用相对路径,所以你可以看看open resource with relative path in java以获得更多关于它的信息。
+0
注意:Apache commons io是必需的 –
'src'文件夹相对于编译类的运行位置不存在 –
仍然不能在此工作。任何其他想法?谢谢! –
https://stackoverflow.com/questions/13967307/reading-from-src-main-resources-gives-nullpointerexception –