使用bufferedreader识别特定行从文件中读取行

时间:2015-02-04 05:00:04

标签: java algorithm bufferedwriter

我的方案就像读取文件并替换其中的几个单词并将其另存为新文件。 但这里的挑战是如果正在读取的文件有5行。如果循环计数为3.在替换并将其写入新文件时。

第一行应该来一次(文件的标题)最后一行应该来一次(文件的页脚)在行之间应该重复n次,并且应该写在新文件中。

假设我的循环计数为3.我正在阅读的基本文件有5行,那么我的输出文件应该有10行。 即。第一行标题一次,接下来的三行重复3次(循环),最后一行重复一次(页脚)。

我尝试了一下,但可以完全实现。我也附上了我的代码

代码:

for (int i = 0; i < template.length; i++) {
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;

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

                    while ((verify = br.readLine()) != null) {
if (verify != 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) {
                    log.info("Catching Error @ createBulkSolFile");
                    log.error(e.getMessage());
                }

            }

}

这里的扫描发生在我的代码中,整个文件是基于循环写的,我只想要中间行除了文件的第一行和最后一行。 要写入的第一行和最后一行应该根据循环进行迭代。

0 个答案:

没有答案