gpt4 book ai didi

java - Java如何将数据写入文件中的特定行号

转载 作者:行者123 更新时间:2023-12-02 07:21:24 26 4
gpt4 key购买 nike

标题:将数据写入文件中的特定行号

这是我的示例文件:

public class MyC{
public void MyMethod()
{
System.out.println("My method has been accessed");
Syst.out.println("hi");
String l;
nt x=0;
}
}

我的目标是什么?

我想转到第 5 行并更正字符串 Syst.out.println("hi");到 System.out.println("hi");到目前为止,我已经能够访问有错误的行并将字符串保存在变量中并替换错误。

这是我到目前为止所取得的成就:

import java.io.*;
public class NewReplaceLine {
public static void main(String[] args)
{
FileInputStream fs = null;
try {
fs = new FileInputStream("C:\\Users\\workspace\\Compilers\\testfile.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
for(int i = 0; i < 6; ++i)
try {
br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
String lineIWant = br.readLine();
String newtext = lineIWant.replace("Syst", "System");
System.out.println(newtext);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

我无法做的是将我更正为第 5 行的字符串重写回文件中。谢谢

最佳答案

(除非某些第 3 方库这样做,)您不能这样做(不仅在 Java 中,而且在其他语言中也是如此)。

您可以顺序或随机访问地读/写文件,但随机访问适用于字节而不是行(FS 不知道您的文件是否包含文本或二进制数据)。而且,如果您找到正确的字节并在那里覆盖,如果您添加原始行中的更多字节,您将覆盖新的字节。

我将使用的选项是顺序读取并复制到新文件(注意在正确位置写入新行)并关闭两个文件。之后,用新文件覆盖旧文件。

关于java - Java如何将数据写入文件中的特定行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14172440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com