java - 如何使用 buffered reader 和 bufferedwriter 在 java 中读取和写入文件

标签 java bufferedreader 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) {}
            }





        }

关于java - 如何使用 buffered reader 和 bufferedwriter 在 java 中读取和写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28424893/

相关文章:

java - 使用单个类构建 "parent/child"系统

java - JFrame 中的登录屏幕

java - 如何判断是否已使用 BufferedReader 读入空行?

java - 写入 CSV 文件,无法写入第一行

java - BufferedWriter 在 OS X 上未刷新到套接字的输出

java - 在 Java spark ml 中创建自定义转换器

java - jaxb,子元素的单独命名空间

java - 关闭 BufferedReader

java - 为什么使用 double 作为输入总是返回 0 结果?

java - 使用 Buffered Write/Reader 提高读取和写入大文件的速度