Napisać funkcję, która przepisuje z pliku tekstowego wejściowego (nazwa przekazana jako parametr), do pliku tekstowego wyjściowego wszystkie linie, których długość jest większa niż 50 znaków.

0

Witam.
Mam problem z działaniem programu.
Napisałem program i nie wiem czemu nie działa
prosił bym o pomoc

 public static void main(String[] args) throws FileNotFoundException 
     {
       Scanner readFile = new Scanner(new File("source.txt"));
       PrintWriter saveToFile = new PrintWriter("output.txt");
        while (readFile.hasNextLine()) {
            String read = readFile.nextLine();
            System.out.println(read);
            if (read.length() >= 50) {
                saveToFile.println(read);
            }
        }
        saveToFile.close();
    }
}
1

Problem to dość ogólne stwierdzenie. Co Ci tam nie działa? Dostajesz jakiś komunikat? Ja odpaliłem u siebie i wygląda na to, że wszystko jest okej.

0

Powinno być

            if (read.length() > 50) {
                saveToFile.println(read);
            }
0

Nie wiem czemu ale mi nie działa .

0

Na konsoli możesz przeczytać, że program nie mógł odnaleźć pliku który próbujesz wczytać. Upewnij się, że source.txt istnieje i znajduje się pod odpowiednią ścieżką.

0

Mam plik tekstowy , wkleiłem nawet go wszędzie a i tak mi go nie czyta.

0

Po instrukcji

Scanner readFile = new Scanner(new File("source.txt"));

JVM szuka pliku source.txt w katalogu bieżącym. Katalog bieżący zależy od sposobu uruchamiania, możesz go sobie wyświetlić instrukcją:

System.out.println(System.getProperty("user.dir"));
0

@M4rcel0664: Powinieneś zrobić tak żw wywołujesz program np. java -jar program.jar filePath i później pobierasz tą sieżkę jako args[0] w mainie (sądząc po tytule tematu) . poza tym możesz łatwiej wczytywać tekst z plików dzięki Files.lines(path)

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