2014-10-10 56 views
-1

必須將兩個最終數組寫入一個.txt文件,以便您可以獲得第一個數組中的第一個對象,第二個數組中的第一個對象依次寫入。試圖寫入文本文件混淆了我,因爲它是,但必須編寫兩個陣列一個接一個......將兩個數組寫入文本文件

所以,如果數組1有「A,B,C」,第二個有「1,2, 3" ,最後的結果將是
- A 1
- B 2
- 的C 3

我覺得它會是與製作文件和System.out的命令,但我m不知道該怎麼做...

+0

http://stackoverflow.com/questions/2885173/java-how-to-create-and-write-to-a -file – herrlock 2014-10-10 07:16:32

+0

這並不能幫助我知道如何使用兩個數組打印...... – 2014-10-10 07:18:56

回答

0

您可以使用PrintWriter創建並寫入文件。假設兩個數組的大小相同,則可以遍歷數組的元素並使用[.print(String s)][2]方法打印到文件。

最後,當您完成後,請不要忘記close流。

0

在寫入文件或控制檯時將兩個陣列齊平。

像 -

String[] array1 ={"A","B","C"}; 
String[] array2 ={"1","2","3"}; 

try(PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8")){ 

    for(int i=0;i<array1.length;i++){ 
     // add condition if both array are not same in size 
     String temp = array1[i]+" "+array2[i]; 
     System.out.println(temp); // console 
     writer.println(temp); // file 
    } 
    writer.flush(); 
} 
+0

請在示例中始終使用'try-with-resources'。直接調用'close()'是不好的做法。調用'flush()'是不必要的。 – 2014-10-10 07:21:57

+0

PrintWriter實現不需要完全刷新,因爲'close'方法不會在內部調用,請檢查代碼 – 2014-10-10 07:25:57

+0

錯誤,'PrintWriter.close()'關閉它所修飾的編寫器。在你的情況下,一個'BufferedWriter'。作家自己刷新。爲什麼'PrintWriter'會在接近時調用'flush'?它不一定需要緩衝... – 2014-10-10 08:07:14

1

簡單。

第一個問題,你將如何打印到STDOUT?

assert (one.length == two.length); 
for (int i = 0; i < one.length; ++i) { 
    System.out.println(one[i] + " " + two[i]); 
} 

因此,現在您只需將其放入文件即可。 System.out只是一個PrintWriter所以我們需要那些指向文件之一:

final Path path = Paths.get("path", "to", "file"); 
try (final PrintWriter writer = new PrintWriter(Files.newBufferedWriter(path, StandardOpenOption.CREATE_NEW))) { 
    for (int i = 0; i < one.length; ++i) { 
     writer.println(one[i] + " " + two[i]); 
    } 
}