Java - zapis do pliku

  • Rejestracja: dni
  • Ostatnio: dni
0

Problem mam dosyć prosty zapewne - mianowicie mam kod

Kopiuj
	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ć?

GU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

jeszcze wywolywanie zapisu

Kopiuj
 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();
		}
	}
P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 150
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.

kalar
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 95
0
Kopiuj
FileWriter plik = new FileWriter("Ścieżka_do_pliku",true);

true odpowiada za dopisywanie do pliku

GU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

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

Kopiuj
	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

kalar
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 95
0
Kopiuj
 fileWriter.write(getDateTime(2)+a);
fileWriter.write("\r\n");//przejście do nowej linii
GU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Dziekuje wszystkim - działa jak powinno :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.