我在這裏有一個錯誤,不知道發生了什麼。錯誤。 BufferedWriter在文件末尾重複行
我的課得到hashmaps和rute的矢量,然後將該hashmap寫入該路由中的文件。
這是代碼:
/* 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 :: Iteracion:90凌特:eufekeptuil;空; Inactivo; Inactivo; Inactivo; Inactivo ; Inactivo; Inactivo
PRF :: HashmapToFile :: Iteracion:91凌特:hwukbzakmfuutrhnfzm;空; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo
PRF :: HashmapToFile :: Iteracion:92凌特:Securitas Europe; 29-JAN-15;無效;無效;無效;無效;無效;無效
PRF :: HashmapToFile :: Iteracion:93凌特:塔裏新544; 05-FEB-15; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo
可是......當我看到這個文件。 ..我有這最後:
Securitas歐洲; 29-JAN-15; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo -OK。完美 -
Tarifa New 544; 05-FEB-15; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo -OK。 Perfect-
然後:
N-15; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo (重複和未完成的線)
塔裏新60; 15-JAN-15 ; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo (重複線)
vjvrqgxavk; NULL; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo; Inactivo (重複線)
又重複了另外15行。
任何線索?
謝謝全部
(所有行重複不會出現在日誌中兩次,只有一次,當進程需要將它們繪製在合適的位置)。第一次重複出現在第40行的文件中,第41次出現,第42次出現,然後再出現一次。 – Pevi 2015-02-10 09:49:01
爲什麼在2015年使用原始類型?爲什麼不在2015年使用試用資源? – fge 2015-02-10 09:50:06
我們使用java 6. :( – Pevi 2015-02-10 10:25:21