2011-03-07 60 views
1

我有一個名爲DIR的文件夾和一個名爲SUB的子文件夾。 我正在運行的java文件被放置在DIR文件夾中,現在我想將我的小字符串保存在SUB文件夾中的.txt文件中。保存在另一個目錄中JAVA - 非常簡單的問題!

你能幫我嗎?

+1

數據不應當被存儲在應用程序的子目錄或它的源代碼。 Java小程序和JWS應用程序。甚至不允許發現那個位置。相反,最好將數據放在「user.home」的子目錄中(例如,基於應用程序的反向包名稱)。 – 2011-03-07 06:48:58

回答

5
PrintWriter out = new PrintWriter(
    new OutputStreamWriter(
     new FileOutputStream("SUB/myfile.txt"))); 
out.println("simpleString); 
out.close(); 

這個簡單的任務在Java中看起來非常複雜。原因是,你可以在從字符串到文件的路上配置所有的東西。你可以例如指定輸出文件的編碼,默認爲平臺編碼(例如,西半球大部分地區的Windows「win1252」)。要編寫UTF-8文件使用:

PrintWriter out = new PrintWriter(
    new OutputStreamWriter(
     new FileOutputStream("SUB/myfile.txt"),"UTF-8")); 
out.println("simpleString); 
out.close(); 

的PrintWriter的也有一個「立即刷新」選項,這是您要在後臺監控日誌文件不錯。

通過鏈接IO構造函數,您還可以在使用BufferedWriter時提高性能,因爲這隻會刷新到磁盤,達到最小大小或關閉流時。

PrintWriter out = new PrintWriter(
    new BufferedWriter(
     new OutputStreamWriter(
      new FileOutputStream("SUB/myfile.txt"),"UTF-8"))); 
out.println("simpleString); 
out.close(); 

通過不必創建一個FileOutputStream指定輸出應該去盤,但你也可以使用任何其他流傳輸的位置,例如像陣列:

byte[] bytes = new byte[4096]; 
OutputStream bout = new ByteArrayOutputStream(bout); 
PrintWriter out = new PrintWriter(
    new OutputStreamWriter(bout,"UTF-8")); 
out.println("simpleString); 
out.close(); 

你會愛上JAVA的多功能性!

2

阿帕奇org.apache.commons.io.FileUtils類被實現,以減少的樣板代碼量..

FileUtils.writeStringToFile(new File("SUB/textFile.txt"),stringData,"UTF-8");