Ищу в файле совпадение с введенной строкой.дальше нужно найденную строку изменить на введенную для замены. Поиск сделал так:
private void handleButtonAction3(ActionEvent event) throws FileNotFoundException, IOException {
String searchWord = scrfield.getText();
String changeWord = chngfield.getText();
byte[] content;
try (FileInputStream fis = new FileInputStream(file);) {
content = new byte[fis.available()];
fis.read(content);
}
String[] lines = new String(content).split("\n");
int i = 1;
for (String line : lines) {
String[] words = line.split(" ");
int j = 1;
for (String word : words) {
if (word.equalsIgnoreCase(searchWord)) {
ansarea.appendText("Found: "+word+"\n");
//замена
ansarea.appendText("Replaced successfully.");
find = true;
}
j++;
}
i++;
}if(find == false) ansarea.appendText("Совпадений не найдено! \n Nothing to change!");
}
private void handleButtonAction3(ActionEvent event) throws IOException {
String searchWord = scrfield.getText();
String changeWord = chngfield.getText();
StringBuilder sb = new StringBuilder();
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)))) {
String strLine;
while ((strLine = br.readLine()) != null) {
sb.append(strLine.replace(searchWord, changeWord)).append("\r\n");
}
}
try (FileWriter fileWriter = new FileWriter(file)) {
fileWriter.write(sb.toString());
}
}
Есть отличный метод String.replace() он вам поможет если заменить нужно первую найденную подстроку.
Если искомых подстрок много и заменить надо все то можно использовать String.replaceAll()
В вашем случае, если важен регистр и просто дополнив ваш код можно так
for (String line : lines) {
String[] words = line.split(" ");
for (int i = 0; i<words.length; i++) {
if (words[i].equalsIgnoreCase(searchWord)) {
ansarea.appendText("Found: "+word+"\n");
//замена
words[i] = changeWord;
ansarea.appendText("Replaced successfully.");
find = true;
}
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости