如何在使用Java读取STDIN时提供可编辑的默认值?

如何在使用Java读取STDIN时提供可编辑的默认值?,java,io,console,Java,Io,Console,。我有一个Java控制台应用程序,它向用户显示key=value属性的列表,并为它们编制索引,以便用户可以键入索引号,然后编辑值,例如: [0] foo=value 1 [1] bar=value 2 prompt> edit 1 bar=value 2 new value?: * [0] foo=value 1 [1] bar=value 2 prompt> edit 1 bar=value 2 new value?: value 2* (星号是提示)。我用我认为是标准的习惯用

。我有一个Java控制台应用程序,它向用户显示key=value属性的列表,并为它们编制索引,以便用户可以键入索引号,然后编辑值,例如:

[0] foo=value 1
[1] bar=value 2
prompt> edit 1
bar=value 2
new value?: *
[0] foo=value 1
[1] bar=value 2
prompt> edit 1
bar=value 2
new value?: value 2*
(星号是提示)。我用我认为是标准的习惯用语来收集输入:

BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
        input = bufferRead.readLine();
我的问题是,我想在提示后向用户提供现有值,以便用户可以简单地修改该值,例如:

[0] foo=value 1
[1] bar=value 2
prompt> edit 1
bar=value 2
new value?: *
[0] foo=value 1
[1] bar=value 2
prompt> edit 1
bar=value 2
new value?: value 2*
我该怎么做呢?从概念上讲,我似乎想用现有值预加载输入读取器,但我不确定这是否是正确的想法,或者我将如何做。我在perl中看到了类似的例子,但在Java中没有遇到任何问题。我有一种感觉,这似乎很容易,但不是


安迪试图更好地理解这个问题。因此,您有一个项目数组。i、 e.数组[“苹果”、“蝙蝠”、“奶牛”]。控制台弹出,当您输入“1”时,它将首先显示项目1的值,因此在本例中,它将显示“bat”,然后您键入的下一个内容将替换输入时“bat”aka(数组[1])的值。这是正确的吗?