>输入:
apple
banana
grapes
apple
banana
grapes
apple
banana
grapes
预期输出:
apple
banana
grapes
orange
melon
apple
banana
grapes
orange
melon
apple
banana
grapes
orange
melon
法典:
String newLine=null;
PrintStream output = new PrintStream(outputFile);
BufferedReader br = new BufferedReader(new FileReader(outputFile));
while((newLine=br.readLine())!=null && !newLine.isEmpty()){
if(!newLine.contains("orange")){
output.println("orange");
}
if(!newLine.contains("melon")){
output.println("orange");
}
}
out.close();
br.close();
上面给出的代码供您参考,将新字符串附加到文件末尾。但我想在每条记录之后附加它。请向我建议修改。在这种情况下,我需要做什么?
使用 string.replaceAll
string.replaceAll("(?s)(?:\n\n|$)", "\norange\nmelon\n\n");
演示
当您遇到包含"grapes"
的行时,您需要为"orange"
和"melon"
附加一个新行。 尝试使用以下代码:
String newLine = null;
PrintStream output = new PrintStream(outputFile);
BufferedReader br = new BufferedReader(new FileReader(outputFile));
while((newLine=br.readLine())!=null) {
output.println(newLine);
if (newLine.contains("grapes")) {
output.println("orange");
output.println("melon");
}
}
out.close();
br.close();
一旦你读到一个空行,你需要输出你的orange
和melon
行。以及到达文件末尾时的其他内容。
找到一个可以开始的片段。
使用附加 LLINES 创建新文件
String newLine;
try (PrintStream output = new PrintStream("fruits.out");
BufferedReader br = new BufferedReader(new FileReader("fruits.in"))) {
while ((newLine = br.readLine()) != null) {
// reached an empty line
if (newLine.isEmpty()) {
output.println("orange");
output.println("melon");
}
output.println(newLine);
}
// reached end of file
output.println("orange");
output.println("melon");
}
修改输入文件
Path fileInOut = Paths.get("fruits.in");
Charset defaultCharset = Charset.defaultCharset();
List<String> linesIn = Files.readAllLines(fileInOut, defaultCharset);
List<String> linesOut = new ArrayList<>();
for (String line : linesIn) {
if (line.isEmpty()) {
linesOut.add("orange");
linesOut.add("melon");
}
linesOut.add(line);
}
linesOut.add("orange");
linesOut.add("melon");
Files.write(fileInOut, linesOut, defaultCharset, StandardOpenOption.TRUNCATE_EXISTING);