我使用帶有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