Java: por que esse código não está funcionando? Loop infinito?

Então, como você pode dizer a partir da minha tentativa, estou tentando descobrir como eu faria um programa que desse ao usuário 5 segundos para inserir algumas linhas de texto, então o Scanner contará quantas linhas foram inseridas. Eu acabei de começar a aprender Java como minha segunda língua, então por favor, tente explicar tudo da maneira mais simples possível :)

Eu tenho duas teorias sobre por que não está funcionando. A primeira é que nextLine () retornará toda a linha, independente de estar vazia ou não, ao invés de NL igual a "", ela será igual a linha inteira (isto é, ""). E minha segunda teoria é que eu não tenho ideia do que estou fazendo e o fluxo do programa está em todo lugar. Enfim, aqui está o meu código:

class OrigClass{
    public static void main(String args[]){
        Scanner ScanObj = new Scanner(System.in);
        int Count = 0;
        String NL = ScanObj.nextLine();
        try{
            Thread.sleep(5000);}
        catch (InterruptedException e){
            e.printStackTrace();
        }
        while (!NL.equals("")){
            Count++;
            NL = ScanObj.nextLine();
        }
        System.out.print("You Entered " + Count + " Lines.");
        ScanObj.close();
    }
}

Ah, esqueci de mencionar que hasNext () foi o que eu tentei originalmente:

       import java.util.Scanner;

    class OrigClass{
public static void main(String args[]){
    Scanner ScanObj = new Scanner(System.in);
    int Count = 0;
    try{
    Thread.sleep(5000);}
    catch (InterruptedException e){
        e.printStackTrace();
    }
    while (ScanObj.hasNext() == true){
    Count++;
    ScanObj.nextLine();
    }
    System.out.print("You Entered " + Count + " Lines.");
    ScanObj.close();
}
    }

questionAnswers(2)

yourAnswerToTheQuestion