2017-06-12 22 views
-2
String[][] EmployeeArray = new String [1000][25]; 

這是我的陣列,它擁有我需要在它已經在所有的信息,但我想從這裏的所有數據發送到名爲EmployeeFile一個文本文件。我應該怎麼做?我想從一個陣列將數據發送到一個txt文件

+0

將其序列化爲json –

+0

您希望以何種格式從該文件中獲取數據?它應該是逗號分隔值(CVS)文件還是其他? – Pshemo

+2

可能的重複[如何將字符串保存到使用Java的文本文件?](https://stackoverflow.com/questions/1053467/how-do-i-save-a-string-to-a-text-文件使用的Java) –

回答

1

可以序列它,甚至更好做一些JSON裝飾品/格式化,然後寫一個文件...

j使用JSON可能是那樣簡單:

String[][] x = { { "0-0", "0-1", "0-2" }, { "1-0", "1-1", "1-2" }, { "2-0", "2-1, "2-2" } }; 
try (Writer writer = new FileWriter("my2DArray.json")) { 
    Gson gson = new GsonBuilder().create(); 
    gson.toJson(x, writer); 
} 
0

首先,您需要遍歷數組並創建一個包含要寫入文件的數據的單個字符串。這樣做是爲了您可以在需要的位置添加新的行字符。

String fileContents = new String(); 

for(int i=0; i<1000; i++) { 
    for(int j=0; j<25; j++) { 
    fileContents += EmployeeArray[i][j] 
    } 
    fileContents += "\n"; 
} 

上面的代碼是非常基本的,它是證明基本思想的必要條件。 使用StringBuilder會更高效,我想有100種方法可以進一步改進這些行。

然後你可以用下面的方法寫入文件:

public boolean writeFile(String data, String path) { 
    try { 
     byte[] encoded = data.getBytes(StandardCharsets.UTF_8); 
     java.nio.file.Files.write(Paths.get(path), 
      encoded, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); 
     return true; 
} catch(IOException e) { 
    e.printStackTrace(); 
} 

    return false; 
} 

你應該小心與選項StandardOpenOption.CREATEStandardOpenOption.TRUNCATE_EXISTING。他們將覆蓋現有的文件。 有時你需要追加到文件,進行相應的調整。

StandardOpenOption文檔可以找到hereStandardOperation.APPEND可用於記錄目的。

另請注意,使用的字符集是UTF8。如果UTF8滿足您的需求,通常是一個好主意。如果您的數據中出現奇怪的字符,則可能需要進行相應的調整。

相關問題