2012-03-12 34 views
0

我無法按照'操作'生成文本文件來存儲操作特定信息,無論採取何種方法,我都無法創建文本文件Web服務器,更不用說在其中存儲信息,第一個示例理想情況下是我想要的(每個操作創建和存儲)寫入Web日誌(文本文件)Java EE

注 - 我試圖在當前用於測試目的的servlet中執行此操作。非常感謝。

try { 
       FileWriter fstream = new FileWriter("out.txt"); 
       BufferedWriter out = new BufferedWriter(fstream); 
       out.write("test"); 
       out.close(); 
      } catch (Exception ex) { 
       System.out.println(ex); 
      } 

不同的方法

try { 

      URL    url; 
      URLConnection  urlConn; 
      DataOutputStream dos; 
      DataInputStream dis; 

      url = new URL("http://localhost:8080/" + request.getContextPath() + "/tmp/myfile.txt"); 
      System.out.println(url); 
      urlConn = url.openConnection(); 
      urlConn.setDoInput(true); 
      urlConn.setDoOutput(true); 
      urlConn.setUseCaches(false); 
      urlConn.setRequestProperty ("Content-Type", "text/plain"); 

      dos = new DataOutputStream (urlConn.getOutputStream()); 
      dos.writeUTF("test"); 
      dos.flush(); 
      dos.close(); 

      //to test 
      dis = new DataInputStream(urlConn.getInputStream()); 
      String s = dis.readLine(); 
      System.out.println(s); 
      dis.close(); 

    } catch(Exception ex) { 
     System.out.println(ex); 
    } 
+0

您有權限將文件寫入文件系統嗎? – jmort253 2012-03-12 21:50:43

+1

我現在正在Windows上進行本地開發,現在我試着嘗試一些文件夾,謝謝! – Ash 2012-03-12 21:52:12

回答

1

不知道爲什麼你會想這樣做這樣的;已經有強大的日誌解決方案和數據庫。

在第一種情況下,如果您沒有收到異常,幾乎肯定會創建一個文件,您只是不知道它在哪裏。使用絕對路徑到達已知可訪問的位置,或者使用.getRealPath與應用程序本身相關的東西。

(注意到,如果要部署戰爭試圖寫一個應用程序相對路徑將無法正常工作。)

在第二種情況下,不知道爲什麼你認爲這會工作。

+0

我已經使用.getRealPath管理生成/定位文件路徑。我已經在使用數據庫來記錄數據,我只需要使用文本文件。毫無疑問,我將在服務器上遇到許可問題,但在此之前,必須這樣做,謝謝! – Ash 2012-03-12 22:12:47

+0

@Ash沒問題;真高興你做到了。儘管如此,我仍然覺得有點奇怪。 – 2012-03-12 22:34:15