我使用带有Tomcat服务器的旧框架EchoStudio3处理Java项目。 我尝试下载一个生成的csv文件,但我得到一个奇怪的文件,而不是。Java文件路径问题
这里是我的代码:
String dir = System.getProperty("user.dir");
File filename = new File(dir, "reports.csv");
FileWriter fw = new FileWriter(filename);
fw.append("User");name
fw.append(',');
fw.append("Count");
fw.append('\n');
fw.append("Bob");
fw.append(',');
fw.append("20");
fw.append('\n');
fw.append("John");
fw.append(',');
fw.append("5");
fw.append('\n');
fw.append("Mike");
fw.append(',');
fw.append("2");
fw.append('\n');
fw.append("Total");
fw.append(',');
fw.append("27");
fw.append('\n');
try {
fw.flush();
fw.close();
URL url = new URL("file:///" + dir);
FileURLConnection urlConn = (FileURLConnection) url.openConnection();
String contentType = "text/csv";
ApplicationInstance.getActive().enqueueCommand(new DownloadCommand(
new FileDownload(contentType,"inline",
filename.getAbsolutePath(),
urlConn.getInputStream())));
} catch (Exception e) {
System.out.println("Error while flushing/closing fileWriter !!!");
e.printStackTrace();
}
我已经在本地Windows环境下测试我的代码Tomcat服务器,但部署的环境将是一个linux环境下,我不知道这是否会导致另一个问题,但我认为你现在应该。 从上面的代码中下载的文件被命名为“C-Program FilesApache Software Foundationapache-tomcat-7.0.64binreports.csv”,并在其中包含一个tomcat文件列表(bootstrap.jar,catalina.bat,...)这真的很奇怪,因为生成的文件存在于bin目录中,但不是这个谁下载的...
问题来自文件路径吗?
“文件:///” +目录+“/reports.csv”,所需的斜线过,我现在有很好的文件,但我仍然使用完整的文件路径“C-Program FilesApache Software Foundationapache-tomcat-7.0.64binreports.csv”获取文件名。 –
用'filename.getName()'更改'filename.getAbsolutePath()'? – Aaron