将多行用户输入写入文件

时间:2017-02-27 01:31:27

标签: java

我试图在控制台中通过读取用户的输入来获得等效的文本框,直到达到某个终结符序列,但我无法弄清楚如何让它终止。

这里是应该读取输入并将其写入文件的代码:

try {
    out = new BufferedWriter(new FileWriter("outagain.txt");
    userInput = new Scanner(System.in);

    String input;
    while ((input = userInput.nextLine)) != null) {
        out.write(input);
        out.newLine();
        input = null;
    }
} finally {
    if (userInput != null)
        userInput.close();
    if (out != null)
        out.close();

是否有某些方法可以捕获逃生"代码"来自用户(即他们写":END"它会突破循环)还是有另一种方法可以做到这一点?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以通过将每个输入行与特定终止字进行比较来实现。 假设终止字为:END,那么我们可以使用termination word检查每个输入行。

如果我们发现终止字作为输入,我们将打破循环并停止从用户那里获取输入并关闭BufferedReader以及Scanner

示例代码:

    try 
    {
        out = new BufferedWriter(new FileWriter("outagain.txt"));
        userInput = new Scanner(System.in);

        String input = userInput.nextLine();    //Store first input line in the variable
        String Termination_Word = ":END";
        while(!input.equals(Termination_Word))  //Everytime Check it with the termination word.
        {
            out.write(input);                   //If it isnot a termination word, Write it to the file.
            out.newLine();
            input=userInput.nextLine();         //Take other line as an input.
        }
    } 
    finally 
    {
        if (userInput != null)
            userInput.close();
        if (out != null)
            out.close();
    }