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

时间:2015-06-13 13:56:55

标签: java text 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);

我更喜欢在正确的方向上轻推而不是完整的示例,因为我想自己弄明白,但是一点帮助会非常感谢!

1 个答案:

答案 0 :(得分:0)

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
}