我的方案就像读取文件并替换其中的几个单词并将其另存为新文件。 但这里的挑战是如果正在读取的文件有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());
}
}
}
这里的扫描发生在我的代码中,整个文件是基于循环写的,我只想要中间行除了文件的第一行和最后一行。 要写入的第一行和最后一行应该根据循环进行迭代。