Wątek przeniesiony 2018-01-09 14:57 z Java przez bogdans.

Zapisywanie pliku z kolejnymi numerami

0

Witam,
chcialbym aby za kazdym nacisnieciem przycisku zapisz w java, plik zapisywanybyl z kolejnym numerem np. zadanie.txt, zadanie1.txt, zadanie2.txt
Napisalem taki oto kod ale problem jest ze tylko zapisuje w jednym pliku. prosze o pomoc
Dziekuje

JButton btnPrint = new JButton("Print");

btnPrint.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent arg0) {

  //for (int fileNumber=0;fileNumber<10;fileNumber++) {
  try {
    for (int i=0;i<5;i++) {
      FileWriter fw = new FileWriter("C:/Users/Maciej/Desktop/SG Data/Probka"+ i + ".txt");
      PrintWriter pw = new PrintWriter(fw);
          
      pw.println("Napisales zadanie");
      pw.close();
    }
    JOptionPane.showConfirmDialog(null, "Success");
  }
  catch (IOException e)
  {
    System.out.println("Error!");
  }
0

Picture or it didn't happen

0

Witaj Bogdans,
moglbys napisac gdzie znajduje sie blad.

0

Nie ma błędu. Kod jest poprawny i działa.

0

Hallo Bogdans,
hm to ja mam jakis inny problem , poniewaz jak ja wcisne klawisz zapisz to pojawia sie natychmiast 6 osobnych plikow (rownoczesnie).
A ja chce aby za kazdym wcisnieciem klawisza pojawial sie nowy plik z nastepnym numerem.
Prosze Cie o wytlumaczenie jak moj program skorygowac

0

Zdefiniuj pole w klasie

int nr = 1;

a po wciśnięciu przycisku wykonaj kod

            try {
                FileWriter fw = new FileWriter("C:/Users/Maciej/Desktop/SG Data/Probka"+ nr + ".txt");
                PrintWriter pw = new PrintWriter(fw);
                pw.println("Napisales zadanie");
                pw.close();
                nr++;
            }
           catch (IOException e)
           {
                  System.out.println(e);
           }
0

Witaj Bogdans,
caly czas zapisuje tylko jeden plik Probka1, bez wygledu ile razy wcisnalem klawisz zapisz.
Moze trzeba zapisac warunek ze jezeli w katalogu pojawi sie Probka1 to nastepny niemoze byc Probka1 tylko Probka 2.
Jak sadzisz

0

Gdzie zdefiniowałeś zmienną nr?

0
int nr = 1;
try {
....
}catch
0

Z Twojej odpowiedzi wynika, że wrzuciłeś to w metodę wywołującą się po kliknięciu przycisku, czyli za każdym razem jak klikniesz ten przycisk, to zmienna nr przyjmuje wartość 1.
Zdefiniuj tą zmienną jako pole w Twojej klasie.

0

Halo Waleq,
czy moglbys mi to pokazac na przykladzie. Czyz mam nazwe pliku zrobic jako String?

0

Żadnej magi w tym nie ma, o ile znasz podstawy Javy...

public class TestClass {
	private int nr = 1;

	public void testMethod() {
		try {
			FileWriter fw = new FileWriter("C:/Users/Maciej/Desktop/SG Data/Probka"+ nr + ".txt");
			PrintWriter pw = new PrintWriter(fw);
			pw.println("Napisales zadanie");
			pw.close();
			nr++;
		}
		catch (IOException e)
		{
			System.out.println(e);
		}
	}

}
0

powstawieniu tego co napisales do akcji z przyciskiem podswietla mi private int nr =1; jezeli usune private kompiluje ale jak klikne kilka razy w ten klawisz(zapisz) np 5 razy to mam tylko jeden plik probka1.txt zamiast probka1.txt, probka2.txt etc. Gdzie lezy blad ?

0
JButton btnPrint = new JButton("Print");
		btnPrint.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				  
				 try {
					 int nr = 1;
			            FileWriter fw = new FileWriter("C:/Users/Maciej/Desktop/SG Data/Probka"+ nr + ".txt");
			            PrintWriter pw = new PrintWriter(fw);
			            pw.println("Napisales zadanie");
			            pw.close();
			            nr++;
			        }
			        catch (IOException e)
			        {
			            System.out.println(e);
			        }
0

Przycisk btnPrint jest w jakimś oknie (obiekcie klasy Foo). Zmienna nr ma być polem tej właśni klasy.

0

juz sie zakrecilem. Mozecie Panowie dokladnie wpisac jak tej krotki kod ma wygladac z tym przyciskiem. Dzieki

0
public class OknoAplikacji extends JFrame{
     private int nr = 1;
     ...
    JButton btnPrint = new JButton("Print");
    btnPrint.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
             try {
                      FileWriter fw = new FileWriter("C:/Users/Maciej/Desktop/SG Data/Probka"+ nr + ".txt");
                      PrintWriter pw = new PrintWriter(fw);
                      pw.println("Napisales zadanie");
                      pw.close();
                      nr++;
                }
                catch (IOException e)
                {
                    System.out.println(e);
                }
0

Dzieki wielkie . Wszystko dziala. Caly czas krazylem wokol. Dziekuje wam bardzo

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