Почему ни одно из этих выражений не заменяют точку на !
str1.replaceAll("\\.", "!"); //str1.replaceAll("[.]", "!");
package com.javarush.task.task19.task1909;
/*
Замена знаков
Считать с консоли 2 имени файла.
Первый Файл содержит текст.
Считать содержимое первого файла и заменить все точки "." на знак "!".
Результат вывести во второй файл.
Закрыть потоки.
Требования:
1. Программа должна считывать имена файлов с консоли (используй BufferedReader).
2. BufferedReader для считывания данных с консоли должен быть закрыт.
3. Программа должна считывать содержимое первого файла (используй BufferedReader c конструктором FileReader).
4. Поток чтения из файла (BufferedReader) должен быть закрыт.
5. Программа должна записывать во второй файл содержимое первого файла, где заменены все точки "." на знак "!" (Для записи в файл используй BufferedWriter с конструктором FileWriter).
6. Поток записи в файл (BufferedWriter) должен быть закрыт.
*/
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader bfrd = new BufferedReader(new InputStreamReader(System.in));
String nameFil1 = bfrd.readLine();
String nameFil2 = bfrd.readLine();
bfrd.close();
nameFil1 = "c:\\temp\\1.txt";
nameFil2 = "c:\\temp\\2.txt";
BufferedReader bufRead = new BufferedReader(new FileReader(nameFil1));
BufferedWriter bufWrite = new BufferedWriter(new FileWriter(nameFil2));
StringBuilder str = new StringBuilder();
while (bufRead.ready()) //пока есть непрочитанные байты в потоке ввода
{
str.append(bufRead.readLine());
//int data = bufRead.read(); //читаем один символ (char будет расширен до int)
//str = str + (char)data;
}
bufRead.close();
String str1 = str.toString();
System.out.println(str1);
str1.replaceAll("\\.", "!");
//str1.replaceAll("[.]", "!");
bufWrite. write(str1);
bufWrite.close();
}
}