Вы используете BufferedWriter и никогда не сбрасываете (программа записи при сбрасывании выталкивает содержимое на диск) ваш писатель или даже закрываете его в конце вашей программы.
Из-за этого, прежде чем ваш контент будет записан в фактическомфайл на диске из BufferedWriter, программа закрывается и содержимое теряется.
Чтобы избежать этого, вы можете вызвать flush сразу после записи содержимого в bw1,
bw1.write(c);
bw1.newLine();
bw1.flush();
ИЛИ
Прежде чем ваша программа завершится, вы должны позвонить
bw1.close(); // this ensures all content in buffered writer gets push to disk before jvm exists
Вызывать сброс каждый раз, когда вы записываете данные, на самом деле не рекомендуется, так как это противоречит цели буферизованной записи.
ТакЛучше всего закрыть буферизованный объект записи.Это можно сделать двумя способами:
- Try-with-resources
- В конце закройте буферный объект записи вручную, вероятно, в блоке finally, чтобы обеспечить его вызов..
Помимо всего этого, вам нужно убедиться, что ваше регулярное выражение соответствует вашему условию,
if(i==0){
будет выполнено, иначе код, записывающий данные в файл, не будет выполнени, конечно, в этом случае запись в файл не произойдет.
Кроме того, настоятельно рекомендуется закрыть любой из ресурсов, которые вы открываете, например, файловые ресурсы, ресурсы базы данных (Connection, Statements, ResultSets) и т. д.
Надеюсь, это поможет.