2013-04-14 22 views
5

Tôi không thể tạo và sau đó viết tệp trong Tomcat. Tệp được tạo nếu tôi chạy chương trình java (chỉ là đoạn văn bản viết mã) như là một ứng dụng Java Java, nhưng không thành công trong Tomcat.Không thể ghi tệp khi đang sử dụng Tomcat

không có thông báo lỗi. Các tập tin chỉ đơn giản là không được tạo ra ở tất cả!

Xin gợi ý nếu tôi thiếu cái gì ở đây:

//code inside the servlet 
public void setData(HttpServletRequest request){ 
    name=request.getParameter("name"); 
    address=request.getParameter("address"); 


    BufferedWriter dataOut; 
    try { 
     System.out.println("Wrinting file..."); 
     dataOut = new BufferedWriter(new FileWriter("data.txt", true)); 




     dataOut.write("name:"); 
     dataOut.flush(); 

     dataOut.write("address"); 
     dataOut.flush(); 

     dataOut.write("\n"); 
     dataOut.flush(); 

     dataOut.close(); 
     System.out.println("File write complete!"); 
    } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 
+0

Thực ra tệp được tạo nhưng bạn đang tìm kiếm ở đâu? –

+0

vì bạn không chỉ định đường dẫn đầy đủ của tệp, nó sẽ được tạo trong ngữ cảnh hiện tại của tomcat. Chỉ định ví dụ đường dẫn đầy đủ dataOut = new BufferedWriter (new FileWriter ("d: \\ data.txt", true)); kiểm tra D: – aymankoo

Trả lời

6

Hình như các tập tin thực sự được tạo ra không có vấn đề.

Bạn thực sự có thể bị thiếu trong đó nó được lưu.

Thay đổi dòng này:

System.out.println("File write complete!"); 

Để:

System.out.println("File write complete! Saved to: "+new File("data.txt").getAbsolutePath()); 

Và bạn có thể giải quyết vấn Mystery.

+0

Cảm ơn !! Các tập tin dường như được lưu trong root..i nằm con đường ... – Rookie

3

Tệp đang được tạo nhưng đang sử dụng đường dẫn tương đối. Nó sẽ được tạo ra tương đối đến vị trí thực hiện, mà trên Tomcat sẽ không được nơi bạn đang sử dụng để nó được.

Sử dụng đường dẫn tuyệt đối hoặc in vị trí của đường dẫn.

+0

cảm ơn !!! tôi đã nhận được thông báo này..Gửi xong! Đã lưu vào: /Users/macbookpro/Downloads/eclipse/Eclipse.app/Contents/MacOS/data.txt làm cách nào để lưu nó vào thư mục Web-Content? – Rookie

+0

Tôi làm cách nào để lưu nó vào thư mục nội dung web? – Rookie

+1

Thay vì đường dẫn tương đối "data.txt", hãy sử dụng đường dẫn tuyệt đối: "/Users/path/to/web-content/data.txt" hoặc sử dụng đường dẫn tương đối sẽ đặt nó ở nơi bạn muốn (tôi không không biết vị trí thư mục bạn muốn có liên quan đến vị trí của tệp bây giờ): "../../../path/to/web-content/data.txt" –