Salve a tutti,
ho un ciclo for in cui di volta in volta aggiungo una lista e quest'ultima vorrei scriverla in un file sovrascrivendo il contenuto precedente del file ovvero ci deve essere sempre solo una versione della lista nel file.

Per farlo utilizzo i seguenti comandi:

codice:
FileOutputStream out = new FileOutputStream("testplista.txt");	
PrintStream scrivi = new PrintStream(out);
if(outputFP.size() == 0)
	System.out.println("LA LISTA E' VUOTA!!!");
scrivi.println(outputFP);
scrivi.close();
out.close();
Come mai vedo il file che a volte risulta essere vuoto (e difatti stonando il programma e aprendolo E' vuoto) eppure la grandezza della lista non è mai di 0? (la lista è outputFP)

Tra l'altro il ciclo mi va in loop ce qualche controindicazione nel fatto che in eclipse premo il tasto stop? non dovrebbero essercene visto che non sempre il file è vuoto.

Il punto è che è un programma che dovrebbe rimanere in esecuzione per svariate ore e quindi non mi è possibile fare un debug passo passo per vedere ogni singolo valore (ecco che vorrei scrivere tutto in un file e poi testare la correttezza del file con una funzione).

Il dubbio che mi voglio togliere è se con l'attuale input ci vogliono solo tante tante ore o se ce appunto qualcosa che non va.


Tra l'altro quello che voglio fare come controllo su questo file è leggerlo, copiarlo in due liste differenti e poi confrontare queste due liste per essere sicuri che non ci siano due stringhe duplicate.
Ho provato a fare questo metodo, secondo voi è corretto?

codice:
		public void controllaDupplicati(String percorso_file1) throws IOException{
			FileInputStream fstream1 = new FileInputStream(percorso_file1);	  
			DataInputStream in1 = new DataInputStream(fstream1);
			BufferedReader br1 = new BufferedReader(new InputStreamReader(in1));
			
			String strLine;	
			
			LinkedList<String> l1 = new LinkedList<String>();
			LinkedList<String> l2 = new LinkedList<String>();
			
			  while ((strLine = br1.readLine()) != null)   
			  {
				  l1.add(strLine);
				  l2.add(strLine);
			  }
			  
			  for(int i=0; i < l1.size(); i++)
			  {
				  //System.out.println(l1.get(i));
				  for(int j=0; j < l2.size(); j++)
				  {
					  if(i != j)
					  {
						  if(l1.get(i).compareTo(l2.get(j)) == 0)
						  {
							  System.out.println("Il seguente pattern è stato trovato piu volte: " + l1.get(i));
						  }
					  }
				  } 

					  
			  }
			  
			  br1.close();
			  in1.close();
			  fstream1.close();
		}
Vi ringrazio in anticipo,
Neptune.