Java - zapis do pliku

0

Problem mam dosyć prosty zapewne - mianowicie mam kod

	public zapis(String a)  throws FileNotFoundException{ 
		  File plik = new File("d:/logi/"+getDateTime(1)+".log");
		  PrintWriter zapis = new PrintWriter(plik);  
	      //zapis.println(a);
	      zapis.write(getDateTime(2)+a);
	      zapis.close();
	      
	}
    private String getDateTime(int a) {
        if(a==1)
        {
        	DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
            Date date = new Date();
            return dateFormat.format(date);
        }
        else
        { 
        	DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss -");
            Date date = new Date();
            return dateFormat.format(date);
        }

    } 

i działa mi to bardzo fajnie poza 1 faktem - przy każdym zdarzeniu wywolujacym zapis - czysci mi plik loga czyli zawsze w pliku jest tylko jedna linia - jak się z tym uporać?

0

jeszcze wywolywanie zapisu

 public void actionPerformed(ActionEvent e) {
		Object source = e.getSource();

		if(source == Button1)
		{
			zdazenie = "Przycisk 1 został wciśniety";

		}
		else if(source == Button2)
		{
			zdazenie = "Przycisk 2 został wciśniety";
			
		}
		else if(source == text1)
		{
			zdazenie = "Zmieniono pole tekstowe";
			
		}
		try {
			new zapis(zdazenie);
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	}
0

W OutputStreamach (może FileOutputStream) są takie (kilka) których konstruktor pozwala na ustawieni opcji dodawania treści do pliku zamiast nadpisywania. Musisz zbudować Strumień (Witer + OutputStream) z komponentów które używają takiej opcji.

0
FileWriter plik = new FileWriter("Ścieżka_do_pliku",true);

true odpowiada za dopisywanie do pliku

0

Tak już udało mi się ustawić nadpisywanie

	public zapis(String a)  throws IOException{ 
		//File plik = new File("d:/logi/"+getDateTime(1)+".log");
		FileWriter fileWriter = new FileWriter(File.separator+"d:/logi/"+getDateTime(1)+".log",true);
		//PrintWriter zapis = new PrintWriter(plik);  
		fileWriter.write(getDateTime(2)+a);
		
		
		//zapis.write(getDateTime(2)+a);
	    //zapis.close();
		fileWriter.close(); 

pozostal mi tylko problem ze w zaden sposob nie moge go zmusic zeby kolejne wpisy byly w nastepnych liniach

0
 fileWriter.write(getDateTime(2)+a);
fileWriter.write("\r\n");//przejście do nowej linii
0

Dziekuje wszystkim - działa jak powinno :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1