Как вы читаете несколько строк, используя readLine в Groovy через SpringSource Eclipse? - PullRequest
0 голосов
/ 29 сентября 2011

Я пытаюсь прочитать несколько входов с консоли в Groovy 1.7.10 в Spring Source Suite 2.7.1 (несколько в .readLine ()), но консоль, кажется, только позволяет мне вводить первую запись, вставляетпробел для второй записи и перемещается, чтобы я мог ввести третью запись, вставляет пробел для четвертой записи и т. д. Вот код, который я использую.

System.in.withReader {reader ->
        print  "w: "
        def w = reader.readLine()
        print  "x: "
        def x = reader.readLine()
        print "y: "
        def y = reader.readLine()
        print "z: "
        def z = reader.readLine()
} 

Вывод, который яполучаю следующее.

w: 1 x: y: 2 z:

Как вы можете видеть, он позволяет мне войти в первую строку, ставит пробел для второй и позволяет вводить третий ввод,и ставит пробел для четвертого.Связано ли это со нажатием кнопки «ввод» при вводе ввода?Я думаю, что нет, поскольку readLine () должна прочитать строку и извлечь текст до, но не включая возврат каретки.Любая помощь приветствуется.

Спасибо,

Хуан

Ответы [ 2 ]

0 голосов
/ 12 февраля 2013

Я предполагаю, что это в Windows ... кажется, есть метод readLine(boolean ignoreLF), но он не виден или не работает. Я тоже сталкиваюсь с этой проблемой.

А пока просто выполняйте дополнительный звонок на reader.readLine() каждый раз.

0 голосов
/ 29 сентября 2011

Если вы работаете на Java 6+, можете ли вы использовать класс Console для чтения строк?

def values = System.console().with { 
  [ 'w', 'x', 'y', 'z' ].inject( [:] ) { map, val ->
    map << [ (val):readLine( "$val: " ) ]
  }
}

println "Got w=$values.w x=$values.x y=$values.y z=$values.z"

Не уверен, что Console работает внутри STS, хотя ...

...