2015-02-10 85 views
1

我需要讀取文件並寫入單獨的文件。我還必須能夠讀取兩個文件並將它們寫入單個文件。如何在java中使用緩衝讀取器和緩衝寫入器讀取和寫入文件

File 1(To be read) 
Header 
text 
text 
Footer 

File 2(To be read) 
Header 
Text12 
Text12 
Footer 

Output file 

Header 
text 
text 
Text12 
Text12 
Footer 

第一行和最後一行保持不變,但只有中間行被追加。 根據我的代碼。頁眉和頁腳被追加兩次。

My output : 
Header 
text 
text 
Footer 
Header 
Text12 
Text12 
Footer 



My Code : 

for (int i = 0; i < template.length; i++) { 


     String endTime = findEndTime(startTime, duration); 

     File file = new File(foldername); 
     file.createNewFile(); 
     BufferedWriter bw = new BufferedWriter(new FileWriter(
       foldername + "/" + solfilename, true)); 
     BufferedWriter bsftp = new BufferedWriter(new FileWriter(
       "c:/ToolSOlFile/" + solfilename, true)); 


     try { 
      String verify, putData = null,header=null,footer=null; 

      FileReader fr = new FileReader("C:/ToolSOlFile/Templates/"+ template[i]); 
      BufferedReader br = new BufferedReader(fr); 

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


        putData = verify.replace("YYYYMMDD", yyyymmdd); 

        putData = putData.replace("DD", duration); 


        putData = putData.replace("IIIIIIIIIIIIIII", imsi); 


        putData = putData.replace("HHMMSS", startTime); 

        putData = putData.replace("hhmmss", endTime); 

        putData = putData.replace("XXXXXXXXX", msisdn); 

        putData = putData.replace("BBBBBBBBBBBBBB", 
          processor.returnTemplateName(template[i])); 


        bw.append(putData + "\n"); 
        bsftp.append(putData + "\n"); 

       } 


      } 

      bw.flush(); 
      bw.close(); 

      bsftp.flush(); 
      bsftp.close(); 
      br.close(); 

      startTime = findUpdatedStartTime(startTime); 

     } catch (IOException e) { 
     e.printStackTrace(); 
     } 

    } 
+2

您沒有顯示任何代碼 – user7 2015-02-10 05:43:24

+0

只從第一個文件讀取頁腳,將其存儲在String中並最後寫入。僅從第一個文件讀取頭文件 – Prashant 2015-02-10 05:46:08

+0

@ user7代碼附加 – 2015-02-10 05:54:26

回答

1

嘗試它下面給出的代碼應該幫助您識別頁眉頁腳和中間線,那麼在哪裏玩,並寫入到一個文件爲u希望

嘗試{

   reader = new BufferedReader(fr); 
       String next, line = reader.readLine(); 
       for (boolean first = true, last = (line == null); !last; first = false, line = next) { 
        last = ((next = reader.readLine()) == null); 


        if (first) { 

         header=line; 
         System.out.println("First Line : "+header); 


        } else if (last) { 

         footer=line; 
         System.out.println("Middle Line : "+footer); 



        } else { 

         middle=line; 
         System.out.println("Footer Line : "+middle); 



        } 

        //WriteBUlkFileWithDifferenttemplates(header,middle,footer); 

       }System.out.println("\n \n"); 
      } finally { 
       if (reader != null) try { reader.close(); } catch (IOException logOrIgnore) {} 
      } 





     }