2015-02-10 87 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) {} 
      } 





     }