Ошибка. BufferedWriter повторяет строки в конце файла

У меня здесь ошибка, и я не знаю, что происходит.

Мой класс получает вектор хэш-карт и маршрут, а затем записывает эту хэш-карту в файл на этом маршруте.

Это код:

/* Variables de entrada */
    Vector vecHm = (Vector) context.getAttribute(sVecHashmap);
    String strFileLocation = "" + context.getAttribute(sFileLocation);


    // Inicializamos variables
    FileWriter fileWriter = null;
    BufferedWriter bufferedWriter = null;

    try
    {
        fileWriter = new FileWriter(strFileLocation,true);
        bufferedWriter = new BufferedWriter(fileWriter);
        String linea = "";
        String lineaCabecera = "";


        for (int i=0;i<vecHm.size();i++)
        {
            HashMap hm = (LinkedHashMap) vecHm.get(i);
            Iterator it = hm.entrySet().iterator(); 
            linea = "";
            while (it.hasNext()) 
            {
                Map.Entry pairs = (Map.Entry)it.next();
                if (i==0)
                {
                    if (lineaCabecera.equals("") == false)
                    {
                        lineaCabecera = lineaCabecera + ";";
                    }
                    lineaCabecera = lineaCabecera + (String)pairs.getKey();
                }
                if (linea.equals("") == false)
                {
                    linea = linea + ";";
                }
                linea = linea + (String)pairs.getValue();
                //it.remove(); // avoids a ConcurrentModificationException
            }

            System.out.println("PRF:: HashmapToFile:: Iteracion: " + i + ". Linea: " + linea);

            if (i==0)
            {
                System.out.println("PRF:: Pinto Cabecera. ");
                bufferedWriter.write(lineaCabecera);
                bufferedWriter.newLine();
                //bufferedWriter.write('\n');
            }
            bufferedWriter.write(linea);
            bufferedWriter.newLine();
            //bufferedWriter.write('\n');
        }
    } catch (Exception e)
    {
        e.printStackTrace();
        throw new WFException(" ERROR writing the file");
    } finally
    {
        try
        {
            // Cerramos el fichero
            bufferedWriter.close();
            fileWriter.close();
        } catch (Exception e)
        {
            e.printStackTrace();
            throw new WFException(" ERROR closing the file");
        }
    }

У меня есть трассировка, которая показывает мне строку для записи в файл:

System.out.println("PRF:: HashmapToFile:: Iteracion: " + i + ". Linea: " + linea);

Лог, который я вижу, таков (я приведу только последние четыре итерации):

PRF:: HashmapToFile:: Итерация: 90. Строка: eufekeptuil;null;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo

PRF:: HashmapToFile:: Итерация: 91. Строка: hwukbzakmfuutrhnfzm;null;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo

PRF:: HashmapToFile:: Iteracion: 92. Linea: Securitas Europe;29-JAN-15;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo

PRF:: HashmapToFile:: Iteracion: 93. Linea: Tarifa New 544;05-FEB-15;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo.

Но... когда я вижу файл... у меня в конце это:

Securitas Europe;29-JAN-15;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo -OK. Идеально-

Тарифа Нью 544;05-FEB-15;Инактиво;Инактиво;Инактиво;Инактиво;Инактиво;Инактиво -ОК. Идеально-

А потом:

N-15;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo (повторяющаяся и незавершенная строка)

Tarifa New 60;15-JAN-15;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo (повторяющаяся строка)

vjvrqgxavk;null;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo;Inactivo (повторяющаяся строка)

И еще 15 строк повторяются.

Любая подсказка?

Спасибо всем


person Pevi    schedule 10.02.2015    source источник
comment
(Все повторяющиеся строки не появляются в журнале дважды, а только один раз, когда процессу нужно нарисовать их в подходящей позиции). Первое повторение появляется в файле на 40-й строке, второе — на 41-й, третье — на 42-й... и еще раз.   -  person Pevi    schedule 10.02.2015
comment
Зачем использовать необработанные типы в 2015 году? Почему бы не использовать попытку с ресурсами в 2015 году?   -  person fge    schedule 10.02.2015
comment
Ну, по крайней мере, вы могли бы избежать использования необработанных типов; также используйте список вместо вектора и т. д.   -  person fge    schedule 10.02.2015


Ответы (1)


Забудьте о проблеме. Файлы хорошие. Проблема в загрузчике. Система помещает больше данных в эту функциональность.

person Pevi    schedule 12.02.2015