因此我的程序需要覆盖文件中的第5行。只是第5行,请保留其他行。 我们不知道第5行的内容。 但是我不知道该怎么做,找不到关于如何使用BufferedWriter和FileWriter进行此操作的任何信息。 我不能在那里写代码,因为..我只是不知道该怎么做。:/
答案 0 :(得分:0)
首先,您可以开始查找我发现的“如何计算文件中的行数”
然后,每次(counter == 5)时,每次传递一行时添加counter ++ 然后做任何你需要做的..
答案 1 :(得分:0)
示例解决方案如下
package teststuff;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Btest {
public static void main(String args[])
{
try
{
File file = new File("test.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = "", oldtext = "", fivthLine = "";
int x=0;
while((line = reader.readLine()) != null)
{
oldtext += line + "\r\n";
if(x == 4)
{
fivthLine = line;
}
x++;
}
reader.close();
String newtext = oldtext.replaceAll(fivthLine, "blah blah blah");
FileWriter writer = new FileWriter("test.txt");
writer.write(newtext);writer.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
请注意,这是伊曼纽尔(Emmanuel)和this
它还将替换文件第5行中写的内容,以便包含第5行相同内容的另一行也将被覆盖
"blah blah blah"
答案 2 :(得分:0)
这是替换文件中给定行的非常简单的示例:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.nio.file.Files;
import java.nio.file.Paths;
public class LineReplaceTest
{
public static void main(String... args)
throws Exception
{
int lineToReplace = 5;
String replacementText = "This is a different line";
Path input = Paths.get("input.txt");
Path output = Paths.get("output.txt");
// Use try-with-resources to ensure our readers & writers are closed
try (BufferedReader reader = Files.newBufferedReader(input);
BufferedWriter writer = Files.newBufferedWriter(output)) {
String line;
int lineNumber = 0;
// While there is a line to read from input...
while ((line = reader.readLine()) != null) {
lineNumber++;
// Write out either the line from the input file or our replacement line
if (lineNumber == lineToReplace) {
writer.write(replacementText);
} else {
writer.write(line);
}
writer.newLine();
}
}
// Once we're done, overwrite the input file
Files.move(output, input);
}
}
它忽略了行错误处理和特定于平台的换行符处理的几项重要内容,但至少应该使您入门。