Java знает только о платформе, на которой работает в данный момент, поэтому она может выдавать только зависящие от платформы выходные данные на этой платформе (используя bw.newLine()
). Тот факт, что вы открываете его в системе Windows, означает, что вы должны либо конвертировать файл перед его использованием (используя что-то, что вы написали, либо с помощью программы, подобной unix2dos ), либо вы должны вывести файл с форматом каретки Windows возвращается в нем изначально в вашей программе Java. Так что, если вы знаете, что файл всегда будет открыт на машине с Windows, вам придется вывести
bw.write(rs.getString(1)==null? "":rs.getString(1));
bw.write("\r\n");
Стоит отметить, что вы не сможете вывести файл, который будет выглядеть корректно на обеих платформах, если вы используете только простой текст, вы можете рассмотреть возможность использования html, если это электронное письмо, или XML, если это данные. В качестве альтернативы вам может понадобиться какой-нибудь клиент, который считывает данные и затем форматирует их для платформы, которую использует зритель.