使用用户输入推进文本文件中的文本

Advancing text in a text file using user input

因此,在我大学一年级的圣诞节项目中,我需要使用 if 语句制作一个基本游戏,我选择了文字冒险,但作为新手,我选择写出每一个打印输出:

System.out.println("You approach the two cupboards one on the right and one on the left.\nWhich one will you inspect?");
        System.out.println("Please press 1 to inspect the right cupboard or 2 to press the left cupboard.");
        int Action1 = 0;
        while(Action1 !=1 && Action1!=2){//Checking to make sure no one puts in a number thats not 1 or 2
            Action1 = in.nextInt();//Start of Player choice
            if( Action1 == 1)
            {
                System.out.println("In the right cupboard you find a note.\nUpon reading the note it says:");
                System.out.println("Hello" + " " + name + " " + "you're probably wondering why you woke up in this kitchen whith driend blood on your shirt unable to rememeber anything.\nPretty understandable. However, you're a part of my game now and I expect you to play by the rules. I'm waiting for you in the attic, if you can get here in one piece I'll reveal all.\n Ciao");
                Enter = in.nextLine();
                System.out.println("After reading the note you check the next cupboard.");
                System.out.println("It contains a small key.\nFar too small for any of the locks in the kitchen, you keep it and move on.");
                Enter = in.nextLine();
            }

但是现在我放暑假了,我正在尝试自己研究一些编程以免生疏,我认为回到我的游戏并通过以下方式清理它是个好主意将文本嵌入文本文件中,但是有一个问题,我完全不知道如何让用户按照自己的步调推进文本,目前所有文本都只出现在屏幕上,看起来有点刺耳。我将包含一些示例代码以备不时之需

 Scanner in = new Scanner(System.in);
        FileReader file = new FileReader("C:/Users/jamie/Desktop/TextAdventure/TextFiles/Opening.txt");
        BufferedReader reader = new BufferedReader(file);

        String text = ""; //string to hold the text in the text file
        String line = reader.readLine();
        while (line != null)
        {
            text += line+"\n";
            line = reader.readLine();
        }
        System.out.println(text);

我更喜欢在正确的方向上轻推而不是完整的示例,因为我想自己弄清楚,但如果能提供一点帮助,将不胜感激!

Type Writer 方法:

String filename = "file.txt";
List<String> lines = new ArrayList<String>();
try (BufferedReader br = new BufferedReader(new FileReader(filename)))
{
    String str;
    while ((str = br.readLine()) != null)
    {
        lines.add(str);
    }
}
catch (IOException ioe)
{
    //handle errors
}

while (lines.size() > 0)
{
    //we know that lines is more than 0 so remove the first element
    String nextLineOut = lines.remove(0);
    for (int charIndex = 0; charIndex < nextLineOut.length(); charIndex++)
    {
        System.out.print(nextLineOut.charAt(charIndex));
        try
        {
            //every time a character is printed to the console sleep for 50 milliseconds
            Thread.sleep(50);
        }
        catch (InterruptedException ie)
        {//handle errors
        }
    }
    //we have reached end of line so print out a new line
    System.out.print(System.lineSeparator());
}

对于打印单行并等待 x 时间的方法。替换

中的代码
while(lines.length() > 0)
{

}

String nextLineOut = lines.remove(0);
System.out.println(nextLineOut);
try
{
    //get amount of characters in the next line multiply by 50 to get a pause of x milliseconds per line
    Thread.sleep(nextLineOut.length() * 50);
}
catch (InterruptedException ie)
{//handle errors
}