Jak nadpisać plik tekstowy

2015-05-18 12:13
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.

edytowany 4x, ostatnio: Unlucky, 2015-05-18 12:22
A jakie jest pytanie? - furious programming 2015-05-18 12:19

Pozostało 580 znaków

2015-05-18 12:34

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

Pozostało 580 znaków

2015-05-18 12:40
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.

Pozostało 580 znaków

2015-05-18 15:40
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

Pozostało 580 znaków

2015-05-18 15:49
bogdans_nz
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.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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