Jak nadpisać plik tekstowy

0

Witam mam problem z nadpisywaniem pliku.txt.

void zapisPlik(String tresc)
	{
		
		try {
			PrintWriter zapis = new PrintWriter(new FileWriter(lokalizacja,true));
			zapis.write(tresc);
			zapis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

	}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Unhandled exception type IOException

	at plikiObsl.zapisPlik(plikiObsl.java:38

Ten kod jest w odrebnej klasie, która będzie odpowiadała za operacje na plikach. Jeszcze nie potrafie obsługiwać wyjątków i stosuje się do tego co Eclipse mi podpowiada.
Nie wiem jak obsłużyć ten drugi wyjątek IOException gdy jeden już jest obsłużony ( FileNotFoundException). Proszę o pomoc w rozwijązaniu problemu.

1

Zmień linijkę FileNotFoundException e na Exception e lub na FileNotFoundException | IOException e

0
Tancerd napisał(a):

Zmień linijkę FileNotFoundException e na Exception e lub na FileNotFoundException | IOException e

Drugi sposób nie działał. Pierwszy zdał egzamin.

0

Co nie zmienia faktu, że nie powinieneś tak robić, bo Exception to klasa bazowa dla wsystkich wyjątków, więc możesz np. złapać NullPointerException i bida. Spójrz jeszcze raz na błąd:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Unhandled exception type IOException
 
    at plikiObsl.zapisPlik(plikiObsl.java:38

i jeszcze raz:

Unhandled exception type IOException

Już prostszej podpowiedzi nie mogłeś dostać. Nie złapałeś IOException, a to jest wymagane. Najzwyczajniej w świecie go złap:

    void zapisPlik(String tresc)
    {
        try {
            PrintWriter zapis = new PrintWriter(new FileWriter(lokalizacja,true));
            zapis.write(tresc);
            zapis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
    }

Btw FileNotFoundException jest podklasą IOException, więc to też ci złapie.


Drugi sposób nie działał.

To jaką wersję Javy ty masz? :D Łapanie wielu wyjątków w jednym catch jest od 1.7

0

W temacie jest mowa o nadpisywaniu pliku. Jeśli naprawdę chcesz nadpisywać, to użyj takiego kodu

PrintWriter zapis = new PrintWriter(new FileWriter(lokalizacja));

Kod z postu

PrintWriter zapis = new PrintWriter(new FileWriter(lokalizacja,true));

dopisuje do pliku.

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