是否可以使用Java SE在一行中输入文本?

时间:2012-12-19 04:39:36

标签: java

我想知道是否存在Java SE允许打印段落的方式,然后在行之间我们可以允许用户在行上键入答案。

更清楚:

以下是一个例子:

_ __ _ 阅读,爱丽丝也喜欢听古典音乐。

因此,当使用缓冲读取器绘制文本时,用户可以在线路上输入答案。

以下是缓冲读取器的方法:

    public void getCloze(){
    File file = new File("cloze.txt");
    StringBuffer contents = new StringBuffer();
    BufferedReader reader = null;

    try {
        reader = new BufferedReader(new FileReader(file));
        String text = null;

        // repeat until all lines is read
        while ((text = reader.readLine()) != null) {
            contents.append(text)
                    .append(System.getProperty(
                            "line.separator"));
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (reader != null) {
                reader.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
     // show file contents here
    System.out.println(contents.toString());

}}

希望有人可以告诉我如何和最好的,如果有任何教程来显示步骤。

2 个答案:

答案 0 :(得分:0)

您的问题并不完全清楚,但您似乎想知道如何撰写问题或提示,并允许用户在同一行输入答案。如果是这样,“技巧”是使用System.out.print(prompt)而不是System.out.println(prompt);即,在提示后不要输出换行符。


更新 - 我现在看到你在问什么。

坏消息是没有简单的方法可以做到这一点。但是,使用诸如charva库或“curses for Java”库之类的东西是可行的 - What's a good Java, curses-like, library for terminal applications?

答案 1 :(得分:0)

我不认为可以提示用户在Java中已打印的行之间键入 。您必须停止打印以获取用户输入,然后将更多字符串打印到用户