prosty edytor tekstu

0

Witam, jestem osobą początkującą i chcę napisać program edytujący zawartość pliku txt. Wszystko działa, ale mam problem ze zmianą nazwy pliku, proszę o pomoc i z góry dziękuję :)

package edytorterkstu;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class EdytorTerkstu {

    public static void main(String[] args) throws FileNotFoundException {

        File doc = new File ("doEdycji.txt");                                                            //odczyt pliku

         Scanner odczyt3 = new Scanner(new File("doEdycji.txt"));
         String text3 = odczyt3.nextLine();

        Scanner odczyt = new Scanner(new File("doEdycji.txt"));
        String text = odczyt.nextLine();

        System.out.println("Obecna zawartość pliku to: " + text);                              //wyświetlenie zawartości
        System.out.println("Czy chcesz Wprowadzić zmiany?");
        Scanner xx = new Scanner(System.in);
        String zmiana = xx.nextLine();

        if(zmiana.equalsIgnoreCase("tak") || zmiana.equalsIgnoreCase("yes") || zmiana.equalsIgnoreCase("y") || zmiana.equalsIgnoreCase("t"))
        {
        System.out.println("Proszę wprowadzić zmiany:    ");                                   // zmiana zawartości
        Scanner y = new Scanner(System.in);
        String edit = y.nextLine();
        PrintWriter z = new PrintWriter("doEdycji.txt");
        z.println(edit);
        z.close();

        Scanner odczyt2 = new Scanner(new File("doEdycji.txt"));
        String text2 = odczyt2.nextLine();

        System.out.println("Pomyślnie zapisano zawartość pliku jako: " + text2 
                +   "\n                          w pliku: " + doc);

        System.out.println ("Czy chcesz zmienić nazwę pliku?");                                                        //zmiana nazwy
        Scanner yy = new Scanner(System.in);
        String nazwa = yy.nextLine();
        if (nazwa.equalsIgnoreCase("tak") || nazwa.equalsIgnoreCase("yes") || nazwa.equalsIgnoreCase("y") || nazwa.equalsIgnoreCase("t"))
        {
            System.out.println("Wprowadź nową nazwę pliku z rozszerzeniem .txt: ");
            Scanner zz = new Scanner (System.in);
            String nazwapliku = zz.nextLine();
            File aa = new File (nazwapliku);
            aa = doc;
            File doc2 = new File (nazwapliku);
            PrintWriter a = new PrintWriter(nazwapliku);
            a.println(text2);
            a.close();

        }
        else {
            System.out.println("Nazwa pliku to nie została zmieniona: " + doc);
        }
        }

        else {
            System.out.println("Nie wprowadzono zmian");
             }
    }

    }
1

Użyj metody (z klasy File) renameTo.

0
 System.out.println("Wprowadź nową nazwę pliku z rozszerzeniem .txt: ");
            Scanner zz = new Scanner (System.in);
            String nazwapliku = zz.nextLine();
            File aa = new File (nazwapliku);
            doc.renameTo(aa); 

W taki sposób? Nie ma komunikatu błędu ale program nie działa, gdzie jest pomyłka?

0

W kodzie masz straszny bałagan i niedobre nazwy zmiennych.
Musisz wpierw zamknąć plik doEdycji.txt.

File aa = new File (nazwapliku);
odczyt.close();
odczyt2.close();
odczyt3.close();
doc.renameTo(aa);

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