ファイル内のname=の後の値を取得するために正規表現を取得し、それを置き換える方法。'myfile.txt'というファイルがあります。
public static void main(String[] args)
File TextFile = new File("C:\\text.txt");
if (TextFile.exists()) {
try {
ReplaceWordInFile(TextFile, "haical", "arnanda");
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static void ReplaceWordInFile(File MyFile, String OldText, String NewText)
throws IOException {
File tempFile = File.createTempFile("filetemp", ".tmp");
FileWriter fw = new FileWriter(tempFile);
Reader fr = new FileReader(MyFile);
BufferedReader br = new BufferedReader(fr);
while (br.ready()) {
fw.write(br.readLine().replaceAll(OldText, NewText) + "\n");
}
fw.close();
br.close();
fr.close();
tempFile.renameTo(MyFile);
}
ファイルC:\text.txtの内容は次のとおりです。
name = haical
address = Michigan 48309, Amerika Serikat
age = 19
gender = male
activity = school
hoby = hiking, travel
上記の最初の行でプログラムを実行すると、name=haicalはname=arnandaに変わります。
私の問題は、からの値name
が「haical」ではなく別の値であるため、name=blablablaの後に値を取得したいということです。
さらに、ステートメントname = haical
がスペースの数を保持せず、位置を変更する場合があります。
後で出力する内容の例は次のとおりです。
address = Michigan 48309, Amerika Serikat
name = haical
age = 19
gender = male
activity = school
hoby = hiking, travel
したがって、常に最初の行とその後のいくつかのスペースにあるとは限りませんが、 name==
で始まる行に常になります。
前もって感謝します。