Ich arbeite an einem Java-Projekt mit einem alten Framework EchoStudio3 mit einem Tomcat-Server. Ich versuche, eine generierte CSV-Datei herunterzuladen, aber ich bekomme stattdessen eine seltsame Datei.Java-Dateipfad Problem
Hier ist mein Code:
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();
}
Ich habe einen Tomcat-Server auf einer lokalen Windows-Umgebung, wo ich meinen Code testen, aber die bereitgestellte Umgebung wird eine Linux-Umgebung sein, ich weiß nicht, ob dieser Wille verursachen ein anderes Problem, aber ich denke, dass Sie jetzt sollten. Die Download-Datei aus dem obigen Code heißt "C-Programme FilesApache Software Foundationapache-tomcat-7.0.64binreports.csv" und enthält eine Liste von Tomcat-Dateien (bootstrap.jar, catalina.bat, ...) und das ist wirklich seltsam, weil die generierte Datei im Verzeichnis bin existiert, aber es ist nicht diese, die heruntergeladen wird ...
Kommt das Problem aus dem Dateipfad?
"file: ///" + dir + "/reports.csv" auch den Schrägstrich benötigt, ich habe jetzt die gute Datei , aber ich bekomme immer noch den Dateinamen mit dem vollständigen Dateipfad "C-Programme FilesApache Software Foundationapache-tomcat-7.0.64binreports.csv". –
Ändern Sie 'filename.getAbsolutePath()' mit 'filename.getName()'? – Aaron