Hola!!
Yo tambien estoy aprendiendo Java (En consola) y efectivamente el mismo problema asi que use System.in.read() y cada que agarraba un caracter lo guardabe en una variable de tipo String(concatenando), por ciernto que buscando en internet encontre algunas clases ya programadas que lo hacen muy bien. puedes conseguirla aqui:
http://200.58.112.52/~zs000214/mostr...=leer&&ficha=8
Espero te sirva como ami!!!