如何使用缓冲 reader 和缓冲写入器在 java 中读取和写入文件

How to read and write a file in java using buffered reader and bufferedwriter

我需要读取一个文件并写入一个单独的文件。我还必须能够读取两个文件并将它们写入一个文件。

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();
        }

    }

尝试下面给出的代码,它应该可以帮助您识别页眉页脚和中间行,然后您可以随心所欲地将它们写入文件

尝试{

                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) {}
            }





        }