Tomcat 서버가있는 이전 프레임 워크 EchoStudio3이있는 Java 프로젝트에서 작업합니다. 생성 된 CSV 파일을 다운로드하려고 시도하지만 대신 이상한 파일이 표시됩니다. 나는이 뜻을 알고하지 않습니다, 나는 내 코드를 테스트 로컬 Windows 환경에서 Tomcat 서버를 가지고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();
}
하지만 배포 환경은 리눅스 환경이 될 것입니다 : 여기
내 코드입니다 또 다른 문제가 생겼지 만 지금은 그렇게해야한다고 생각합니다. 위의 코드에서 다운로드 한 파일의 이름은 "C-Program FilesApache Software Foundationapache-tomcat-7.0.64binreports.csv"이며 Tomcat 파일 목록 (bootstrap.jar, catalina.bat, ...)이 있습니다. 그리고 그것은 생성 된 파일이 bin 디렉토리에 있기 때문에 정말로 이상합니다. 그러나이 파일은 다운로드 한 사람이 아닙니다 ...파일 경로에서 문제가 발생합니까?
URL url = new URL("file:///" + dir + "/reports.csv");
FileURLConnection urlConn = (FileURLConnection) url.openConnection();
String contentType = "text/csv";
ApplicationInstance.getActive().enqueueCommand(new DownloadCommand(
new FileDownload(contentType,"inline",
filename.toString(),
urlConn.getInputStream())));
"파일 : ///" –
'filename.getAbsolutePath()'를'filename.getName()'으로 변경 하시겠습니까? – Aaron