aspose file tools*
The moose likes Beginning Java and the fly likes How to input something ? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "How to input something ?" Watch "How to input something ?" New topic
Author

How to input something ?

E Lan
Greenhorn

Joined: Mar 15, 2004
Posts: 11
This is a easy question.
For example:
We write a program that is about one game.In this program,there is a request that when user end this game one time,computer must ask user :"Want to play one more time?(y\n)". And if user input 'y',then the game will restart,if user input other words,then this program finished.
But I don't know how to get the user's input.
Like above example,how to get the input 'y' or 'n' or other words from user? What command I must use? What shold I do?
To clearly,if we write program in C++,we can use the command "cin>>"to get user's input.Is there any command like "cin>>" in language java?

Thanks you to answer my immature question.
[ June 10, 2004: Message edited by: E Lan ]
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
Just as you use System.out to write to the console, you can use System.in to read. Looking at the JavaDoc System.in is of type InputStream, and that lets you read individual bytes or arrays of bytes. Not very friendly.

Something like BufferedReader would be nice because it has readLine(). So let's look at the constructor docs for BufferedReader. Takes a Reader, and InputStream is not a Reader, so we can't hook that up directly. Follow the link to Reader and see what implements Reader. Hey, InputStreamReader sounds promising. Follow that link and sure enough it has an InputStream constructor.

So here's the finished product:

You'll often see this shortcut ...

The only bad news is that the Java console does not support reading individual keystrokes. So the user has to hit "Y+Enter" instead of just "Y". We all just have to live with that.

Hope that helps! Actually, hope it works. I'm typing without testing.


A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
E Lan
Greenhorn

Joined: Mar 15, 2004
Posts: 11
Thank you very much~Stan James,what you teach me is helpful.
I have written a simple program to test,and that did work!

Additionally,
after read your article,I am interested in how to use "System.in" to get inputs ,even it just can get bytes input data.
Could you leak some information for me?
Thanks again
[ June 10, 2004: Message edited by: E Lan ]
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
You can read bytes one at a time from InputStream.

This will read characters until the user hits Ctrl-Z for EOF. On Windows anyhow. You can adjust the loop to read up to a new line '\n' or some special character or whatever you like. Experiment with it and see how it responds to normal characters, ctrl and alt and other odd keystrokes.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to input something ?