2015-06-04 27 views
0

我知道一般情況下,您不希望將動態文件存儲在webapp目錄中,因爲如果重新部署war文件它們將被覆蓋。然而,對於我所需要的功能,我需要這些文件可以在webapp/resources中使用。Java Spring將kml文件保存到webapp/resources

是否有可能創建一個文件並將其保存到資源目錄中?

 Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("/resources/xml/someFile"+randomNum+randomChar+".kml"), "utf-8")); 
+0

忽略強的一個例子「不這樣做」,肯定的 - 它是一個目錄的文件系統上像其他任何人一樣(假設它是一場爆炸戰爭)?您是否面臨任何問題 – 6ton

+0

上傳可通過網絡應用程序訪問的文件是否有其他選項?所以,如果我想創建一個可以下載的XML文件,我會在哪裏放置這個? – user2524908

+0

是 - 您可以使用網絡文件位置(因此它們可以通過羣集訪問),使用數據庫或使用本地目錄 - 用於非羣集環境 – 6ton

回答

1

Java webapps可以作爲.war文件或Tomcat上的目錄進行部署。在.war文件的情況下,沒有目錄可以寫入文件。

我想你可以將文件保存到Tomcat部署目錄以外的目錄(你有權限)/ dir/home/user/docs。

然後編寫一個可以從該目錄讀取內容的Servlet。文件名可以作爲參數傳遞給您的servlet。例如/myapp/GetFile?name=foo.txt

你可以找到一個文件閱讀器的servlet here

+0

這是真的如何完成與Java?這些文件是巨大的巨大文件。將它們讀入BufferedReader會產生太多的開銷。我已經在一個不同的框架中使用類似於java的方法做了類似於java的文件寫入爆炸jar的東西。 kml文件是一次性使用的。 – user2524908

+1

無論您是通過代碼讀取代碼還是從服務器爲部署目錄讀取代碼,時間/性能都相同或相似。在這兩種情況下,讀取文件並將其輸出到輸出流的基本機制是相同的。 – 6ton

+0

如果我在webapp下的資源目錄中打包了一個靜態xml文件,並使用localhost:8080/resources/xml/file.xml訪問它。它不會有那個開銷,對嗎? – user2524908