0

「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

上に投稿したコードは、猫を鶏に置き換えるだけなので機能します。条件(行番号= 2)が必要な場合は、それを置き換えます。

4

2 に答える 2

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++;
}

参照

于 2013-03-04T18:06:32.267 に答える
0

次のように、現在の行番号を追跡する変数を作成できます。

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

    if (line == 1)
    {
       oldtext += line + System.lineSeparator();
     }
    ++line;
}
于 2013-03-04T18:09:25.580 に答える