2010-12-21 76 views
1

我有一個問題,那就是我有一串數據,我想每次將它保存到一個單獨的文件中。請給我一個建議。如何將數據保存到Java中的文件?

感謝, 翻kumar.pjd

+1

你能更具體一點嗎? – Mrki 2010-12-21 13:11:07

+0

爲什麼downvote? – Mudassir 2010-12-21 13:14:58

+0

我不知道,但這是一個在網上有很多例子的常見問題。 – 2010-12-21 13:16:50

回答

7

使用時間戳日的文件名,所以你可以肯定它是獨一無二的。

import java.io.*; 
class FileWrite 
{ 
    public static void main(String args[]) 
    { 
     try{ 
    // Create file 
    FileWriter fstream = new FileWriter(System.currentTimeMillis() + "out.txt"); 
     BufferedWriter out = new BufferedWriter(fstream); 
    out.write("Hello Java"); 
    //Close the output stream 
    out.close(); 
    }catch (Exception e){//Catch exception if any 
     System.err.println("Error: " + e.getMessage()); 
    } 
    } 
} 

這是非常容易谷歌的東西。

1

一個解決方案可以是,使用隨機數生成器來生成一個隨機數。將此隨機數與一些文本一起用作文件名。保持已使用名稱的列表,並且每次保存文件時,檢查文件名是否唯一。

3

一個班輪。使用base 36作爲id會使文件名縮短。 (文本,新的FileWriter(Long.toString(System.currentTimeMillis(),36)+「。txt」)));}}

http://commons.apache.org/io/

1

一種可能的方式獲得文件對象,具有獨特的名稱可能是:

public static File getUniqueFile(String base, String ext, int index) { 
    File f = new File(String.format("%s-%03d.%s", base, index, ext)); 
    return f.exists() ? getUniqueFile(base, ext, index + 1) : f; 
} 

更新:這裏進入基本用法/測試案例:

String s = "foo string\n"; 

    FileWriter writer = null; 

    for (int i = 0; i < 10; i++) { 
     File f = getUniqueFile("out", "txt", 0); 
     try { 
      writer = new FileWriter(f); 
      writer.write(s); 
      writer.close(); 
      writer = null; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      break; 
     } 
    } 

    if (writer != null) { try { writer.close(); } catch (Exception e) {} } 
4

你不需要自己計算文件名,看看File.createTempFile

根據JavaDoc:

創建指定目錄中的新的空文件,使用給定的前綴和後綴字符串生成其名稱。如果此方法成功返回則保證:

  1. 由返回的抽象路徑名此方法之前不存在表示的文件被調用,並
  2. 無論這種方法也不是任何變體將返回相同在虛擬機的當前調用中再次提取抽象路徑名。

此方法僅提供臨時文件設施的一部分。要安排由該方法創建的文件自動刪除,請使用deleteOnExit()方法。

相關問題