2015-06-04 37 views
0

而不是有15个BufferedWriters,有没有一种方法可以使用数组写入15个不同的文件?Java:使用BufferedWriter数组写入多个文件(或其他方式?)

public static void main (String [] args) { 
    try { 
     BufferedReader br = new BufferedReader(new FileReader("")); 
     BufferedWriter bw = new BufferedWriter(new FileWriter("1occurrence.txt")); 

     HashMap<String,Integer> hash = new HashMap<String,Integer>(); 


while ((line= br.readLine()) != null) { 

    if (!hash.containsKey(genesym)) { 
       hash.put (genesym, 1); 
       int count=0; 
       bw.write(line + "\n"); 
      } 

      else { 
       count = hash.get(genesym); 
       if (count==1) { 
        bw2.write(line + "\n"); 
        count++; 
       } 
       else if (count==2) { 
        bw3.write(line + "\n"); 
        count++; 
       } 

然后我有12个'else if'语句写入多达15个不同的文件。 喜欢的东西

BufferedWriter [] bw = new BufferedWriter[15]; 

for (int i=0; i<15; i++) { 

    array[i] = new BufferedWriter(); } 

我意识到这句法是非常不正确,但是这是我可以解释它的最佳方式。

感谢您的帮助!

+1

听起来像你想要的是一个MultiWriter。看看这个答案:https://stackoverflow.com/questions/25382876/java-make-a-printwriter-write-two-different-writers –

回答

2

我不明白为什么有必要建立缓冲作家阵..

如果您的要求是写15个不同fiels ..然后你就可以有15个文件名阵列和改变参考在每次迭代缓冲作家..

请看看下面的代码...

String[] fileNames = {"file1.txt","file2.txt",....} // 15 file names;  
BufferedWriter writer = null; 
for(int i=0;i<fileNames.length;i++) 
{ 
    writer = new BufferedWriter(new FileWriter(fileNames[i])); 
    writer.wrtier(data); // write data to file 
} 

希望这回答了你的问题。

如果您需要更多信息,请让我知道。

+1

这正是我需要的,谢谢你! –

相关问题