Frustrujący problem ze Scanner'em dla Sherlocka Holmsa ;)

0

Witam,

Mam taki problem, który doprowadza mnie do szewskiej pasji, mianowicie problem dotyczy Scannera (a dokładnie odczytu). Postaram się opisać jak najdokładniej: Tworzę obiekt file i próbuję odczytać zawartość (wcześniej ręcznie tworzę plik.txt) - najczęściej nie mogę skompilować, lub też gdy używam tylko funkcji findLine() (kompiluje się, ale mimo znalezionego słowa zwraca null).
Co najdziwniejsze program, jeśli sam zapisuje plik (np. PrintWriter() i tworzę plik z identyczną zawartością) program działa świetnie O.o Nie wiem czym może się różnić identyczne z pozoru pliki (ręcznie utworzony - nie działa), zaś przez program napisany w javie działa.

        File plik = new File("plik.txt");
        Scanner odczyt = new Scanner(plik);
        String zdanie = odczyt.nextLine();
        
        System.out.println(zdanie);

Szukałem już dużo, sprawdziłem, że oba pliki mają taką samą nazwę, rozszerzenie oraz rozmiar, próbowałem zapisywać w różnych kodowaniach i nic. Konia z rzędu komu uda się rozwikłać zagadkę. Proszę o pomoc :)

0

Jeśli nie udostępnisz pliku, z którym Scanner sobie nie radzi, to pozostaje kontakt z wróżką.

0

Załączam oba pliki, jeden stworzony ręcznie (tzn. nowy notatnik), zaś drugi przez PrintWriter() w java. Jedne nie działa, zaś drugi świetnie :/ Czakam na propozycje, z góry ogromne dzięki ;)

1

Pierwsze co się różni to kodowanie plików: zapisany w programie UTF8 without BOM, zapisany ręcznei ANSI

0
Swr napisał(a):

Pierwsze co się różni to kodowanie plików: zapisany w programie UTF8 without BOM, zapisany ręcznei ANSI

Sama zmiana nic nie daje (zmieniałem na wszystkie możliwe formaty O.o), ale o dziwo pomógł, taki sposób: format UTF8, oraz zapisz jako (nie domyślnie txt), tylko wszystkie formaty i dopisanie ręcznie ".txt". Teraz działa, wie ktoś czym to może być spowodowane? xD

//jestem nowy na forum, w jaki sposób można podziękować, nagrodzić użytkowników za odpowiedzi? :)

1

Możesz kliknąć na strzałkę z prawej strony postu, który chcesz uhonorować.
Ja plik plikTworzonyRecznie.txt bez problemu odczytałem Scannerem.

0
bogdans napisał(a):

Możesz kliknąć na strzałkę z prawej strony postu, który chcesz uhonorować.
Ja plik plikTworzonyRecznie.txt bez problemu odczytałem Scannerem.

A wyszukiwanie (findLine()) też Ci działa?
U mnie normalnie nie chce, być może sprawa kompilatora [NetBeans] czy może systemu [Windows 7 64 bit]. Sam się zastanawiam czego to wina, ale po takim utworzeniu jak opisałem działa, a inaczej nie chce... dziwne <myśli>

0

A co masz na myśli pisząc findLine()?

0
bogdans napisał(a):

A co masz na myśli pisząc findLine()?

Sprostowanie FindInLine()

np.
File fPlik = new File("plik.txt");
Scanner skaner = new Scanner(fPlik);

String nazwa = skaner.findInLine("kota");
System.out.println(nazwa);

Jeśli znajdzie zwraca "kota", jeżeli nie to "null"

0

Znajduje.

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