Java, odczyt danej linii z pliku.

0

Cześć,
może mi ktoś powiedzieć czy istnieje (podejrzewam że tak) sposób aby odczytać podaną linie z pliku txt?
Oto mój kod:

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;
import java.io.File;
public class Game {
    public static void main(String[] args) throws FileNotFoundException {
        new Game().start();
    }


    Random random = new Random();
    Scanner scanner = new Scanner(System.in);
    int points;






    public void start() throws FileNotFoundException {


        System.out.println("Podaj swoje imie");
        String imie=scanner.nextLine();
        System.out.println("Witaj " + imie);

        long startTime = System.currentTimeMillis();

        while (true){

            char randomChar = (char) (random.nextInt(123 - 97) + 97);
            System.out.println("Twoj znak to " + randomChar);

            System.out.println("Podaj odpowiedź:");
            char userAnswer=scanner.nextLine().charAt(0);

            if(randomChar == userAnswer)
            {
                points++;
            }else{
                System.out.println("Podałeś złą litere , spróboj ponownie");
            }
            if (points==3)
                break;
        }



        long stopTime = System.currentTimeMillis();
        long results = (stopTime-startTime)/1000;


        //odczyt z pliku
        File plik = new File("rekord.txt");
        Scanner in = new Scanner(plik);
        String readImie = in.nextLine();
        int readPoints = in.nextInt();
        int readResults = in.nextInt();
        System.out.println(readResults);


        //zapis do pliku

        if(results<readResults){
            PrintWriter zapis = new PrintWriter("rekord.txt");
            zapis.println(imie);
            zapis.println(points);
            zapis.println(results);
            zapis.close();
            System.out.println("Gratulacje! Ustanowiles nowy rekord i zostałeś wpisany do księgi rekordów!");
        }






        System.out.println("Twój wynik to " + points + " punktów a czas gry to : " + results + " sekund" ) ;

    }
}

Aby odczytac 3 linijke z pliku w której zapisany mam czas gry, potrzebuje pierwsze zapisać do zmiennej pierwszą i drugą linijkę kodu.
Czy może mi ktoś powiedzieć jak zrobić aby program zapisywał tylko 3 linijkę kodu?

0

Daną linijkę z pliku textowego można przeczytać, korzystając ze streamów i klas w pakiecie java.nio.file, oto metoda która robi ci robotę - na podstawie zażądanego numeru linijki, zwraca ową linijkę:

private String getLine(int lineNumber) throws IOException {
        return Files.lines(Paths.get("your_path_to_file.txt"))
                .skip(lineNumber - 1).findFirst().get();
    }
0

Niestety nadal nie potrafię sobie poradzić, czy możesz pokazać mi na przykładzie mojego kodu, jak to zrobić?

0
krzysie_1997 napisał(a):

Niestety nadal nie potrafię sobie poradzić, czy możesz pokazać mi na przykładzie mojego kodu, jak to zrobić?

Niestety nie. Podałem ci gotowe rozwiązanie na pytanie postawione przez ciebie, a także postawione w tytule wątku. Nie za bardzo rozumiem co robisz w kodzie i dlaczego, a nie chce mi się w niego zgłębiać

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