Java 读取特定行并更改该行中的字符串

Java 读取特定行并更改该行中的字符串,java,string,file,Java,String,File,我有一个名为“Hello.txt”的文本文件 它包括以下内容: dog cat mouse horse 我想有一种方法来检查,当读卡器读取行时,如果行等于2,它会将“cat”替换为“hen”,并写回同一个文件。到目前为止,我已经尝试了这么多,但我不知道将条件放在哪里以检查line=2,然后它将进行替换。我的代码是: import java.io.*; public class Python_Read_Replace_Line { public static void main(String

我有一个名为“Hello.txt”的文本文件 它包括以下内容:

dog
cat
mouse
horse
我想有一种方法来检查,当读卡器读取行时,如果行等于2,它会将“cat”替换为“hen”,并写回同一个文件。到目前为止,我已经尝试了这么多,但我不知道将条件放在哪里以检查line=2,然后它将进行替换。我的代码是:

import java.io.*;

public class Python_Read_Replace_Line
{
public static void main(String args[])
{
try
{
File file = new File("C:\\Hello.py");
LineNumberReader lnr = new LineNumberReader(new FileReader(new File("C:\\Hello.txt")));
int numlines = lnr.getLineNumber();

BufferedReader reader = new BufferedReader(new FileReader(file));
String line = "", oldtext = "";
while((line = reader.readLine()) != null)
{

    oldtext += line + System.lineSeparator();

}
reader.close();

String newtext = oldtext.replaceFirst("cat", "hen");

FileWriter writer = new FileWriter("C:\\Hello.txt");
writer.write(newtext);
writer.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
文件内容应如下所示:

 dog
 hen
 mouse
 horse
我上面发布的代码之所以有效,是因为它只是用hen替换了cat。我想有一个条件(行号=2),然后它会替换它。

类似的东西

int lineCount = 1;
while((line = reader.readLine()) != null)
{
  if (lineCount == 2)
    oldText += parseCommand.replaceFirst("\\w*( ?)", "hen\1")
      + System.lineSeparator();
    //oldText += "hen" + System.lineSeparator();
  else
    oldtext += line + System.lineSeparator();
  lineCount++;
}

.

您可以创建一个变量来跟踪您所在的行号,如下所示:

int line = 0;
while((line = reader.readLine()) != null)

    if (line == 1)
    {
       oldtext += line + System.lineSeparator();
     }
    ++line;
}

我想对它应用ReplaceFirst函数..假设第2行包含:鼠标文本测试。所以它成为了一种文本测试。我怎样才能做到这一点。