bufferedReader 只读本地csv文件
bufferedReader only read local csv file
我是 Java 的新手,我正在尝试使用此 class 来 return "test.csv"[=32 的内容=]。这仅在我使用本地文件路径时有效。
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”,
这个 class 得到一个空值 return。
这里有人可以帮忙吗?
谢谢!
更新:
解决方案:
正在将我的 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)标记为 resource 文件夹。并且当您构建 jar 文件时,资源文件夹内容将位于根目录中。因此,如果您从 / 开始资源路径,则表示 jar 的根目录(即资源文件夹的根目录).
我不使用相对路径,因此您可以查看 open resource with relative path in java 以获取更多信息。
我是 Java 的新手,我正在尝试使用此 class 来 return "test.csv"[=32 的内容=]。这仅在我使用本地文件路径时有效。
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”,
这个 class 得到一个空值 return。
这里有人可以帮忙吗?
谢谢!
更新:
解决方案:
正在将我的 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)标记为 resource 文件夹。并且当您构建 jar 文件时,资源文件夹内容将位于根目录中。因此,如果您从 / 开始资源路径,则表示 jar 的根目录(即资源文件夹的根目录).
我不使用相对路径,因此您可以查看 open resource with relative path in java 以获取更多信息。