Problem z odczytaniem całego pliku

0

Chce odczytać zwykły plik tekstowy. Zadanie teoretycznie banalne. Mam taki kod


import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Odczyt {

    static String nazwa = "plik.txt";

    public static void main(String[] args) throws FileNotFoundException, IOException
    {
        BufferedReader buf = new BufferedReader(new FileReader(nazwa));
        int i = 1;
        while(buf.readLine() != null)
        {
            System.out.println("linia numer " + i + " wartosc lini: " + buf.readLine());
            i++;
        }
        buf.close();
    }

}

Powinien drukować kolejne linie i robi to ale zawsze tylko do połowy pliku... Jeśli mam np 10 lini w pliku txt to on wydrukuje 5 itd. Z góry dziękuje za sugestie ; ]

0

Najlepiej użyj klasy Scanner wraz z jej metodami nextLine(), hasNextLine()

0

a jeżeli koniecznie nie chcesz używać Scanner'a - readLine() za każdym razem przechodzi do następnej linii - więc w warunku pętli while już przechodzi do pierwszej linii, a w system.out.println() - do drugiej. Przypisz najpierw do jakiegoś Stringa wartość zwróconą przez readLine(), i wtedy sprawdź czy to nie null - jeśli nie, wypisz.

0
package laborki8;

import java.io.*;
public class Odczyt {

 static String nazwa="plik.txt";
    public static void main(String[] args)throws IOException
    {
        BufferedReader in = new BufferedReader(new FileReader(nazwa));
        String s;
        int i = 1;
        while ((s = in.readLine()) != null)
        {
            System.out.println("linia numer: " + i + " ma wartosc: " + s);
            i++;
        }
        in.close();
    }

}

Takie cos juz działa... Dzieki ; *

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