Удалите пустые строки, которые появляются при записи в файл (Java)

Я создал программу, которая берет текстовый файл, полный трехбуквенных слов, и обрабатывает их, сохраняет их в массиве, а затем выводит в вывод сборки в JCreator, а затем записывает тот же вывод в файл.

Теперь эта программа работает нормально, но когда я печатаю много данных, все эти пустые строки вставляются туда, где их быть не должно.

Я использую это для печати в свой файл:

PrintWriter fw = new PrintWriter(new FileWriter("Dictionary.txt")); 

   for (int i=0; i<count; i++)
   {
       if (words[i]!=null)
           fw.println(words[i]);
   }

Я перебираю массив и не печатаю в файл, а только на экран вывода в среде IDE. Теперь я внезапно получу пустую строку там, где ее быть не должно, вот так:

тут
смокинг

уке
использовать

и кажется совершенно случайным.

Теперь, как мне удалить эти строки из файла без необходимости записи в новый файл, поскольку запись большого количества строк, похоже, вызывает эту проблему.

Спасибо, парни


person Strategist01    schedule 12.10.2010    source источник
comment
Может быть, некоторые слова на самом деле пусты? Вы проверили, если words[i].length() == 0?   -  person casablanca    schedule 13.10.2010
comment
Другой поток печатает что-то еще?   -  person Thorbjørn Ravn Andersen    schedule 13.10.2010
comment
Слова не были пустыми, поскольку я печатал массив, пустые значения просто напечатали бы нуль в строке.   -  person Strategist01    schedule 13.10.2010


Ответы (2)


Внесите небольшое изменение:

if (words[i]!=null && words[i].trim().length() != 0)
       fw.println(words[i]);

По сути, вы хотите проверить, будет ли строка пустой, и пропустить ее печать.

person jjnguy    schedule 12.10.2010
comment
Удаление пустых строк из словаря кажется действительно хорошим ходом :) - person extraneon; 13.10.2010
comment
Я тоже так думал, но это случайно, так что, похоже, это не так. - person Colin Hebert; 13.10.2010
comment
@ Колин, я предполагаю, что на самом деле это не случайно. - person jjnguy; 13.10.2010
comment
Привет Джастин, это сработало. Пустые строки удалены. Спасибо. Кстати, это .length(), моя IDE плюнула на меня... - person Strategist01; 13.10.2010
comment
@Strate, рад, что смог помочь. Спасибо, что указали на мою опечатку! - person jjnguy; 13.10.2010
comment
@Justin: Не беспокойтесь, это очень помогло :) - person Strategist01; 13.10.2010

Если это совершенно случайно, вам следует попробовать записать файл и проверить этот файл. Не то чтобы я не доверял консоли, предоставляемой вашей IDE.

person Colin Hebert    schedule 12.10.2010
comment
Писал в файл, а вывод в консоль и в файл точно такой же. - person Strategist01; 13.10.2010