Re: reading from console, InputStreamReader etc.



mehafi@xxxxxxxxx wrote:
Hi,
I've got 2 question:
1) I'd like to read a double value from console, so I wrote:

try{
char c = new char[100];
InputStreamReader isr = new InputStreamReader(System.in);
isr.read(c);
String s = new String(c);
double d = Double.parseDouble(s);
}
catch (IOException ioe) { }

Suppressing exceptions by catching them but doing nothing about it is
almost always a bad choice. If you are not going to do anything about
the I/O failure at least get rid of the try-catch block, adding "throws
IOException" to the method signature, so that it will propagate up the
stack without being hidden.


Have I to write such much code to do such simple think?
In C++ I nead only:
double d;
cin >> d;

I would have put "throws IOException" on the method declaration and written:

BufferedReader inReader = new BufferedReader(new InputStreamReader(System.in));
String inData = inReader.readLine();
double someMeaningfulName = Double.parseDouble(inData);

C++ is generally a more terse language than Java. At the time C was
designed, a lot of work was being done over relatively slow phone
connections, so that terseness was good. Java was designed at a time of
high bandwidth connections and IDEs with completion capabilities. It is
less terse in its built-in features and tends to encourage meaningful
identifiers and other non-terse programming practices.


2) I need to detect is someone pres some key, without echo on console
and without press enter after key. In C++ it's like this:

char c = getch();

Is in Java something like this?


Not, as far as I know, for console input. Normally you are expected to
do that sort of thing in a GUI. There are ways of attaching a Listener
to a GUI component to capture key presses.

Again, at the time C was designed people did a lot of GUI-ish things on
text consoles. In the 1980's, used Emacs as a sort of GUI environment,
with multiple files being edited and at least one shell all in a single
80 by 24 text display. Java was designed in a graphical display world,
and tends to favor graphical displays for user interaction.

Java and C++ are very different languages. I tend to get from idea to
working, documented program faster in Java than in C++, and find it
easier to maintain and refactor. Those things are far more valuable to
me than terseness, so I prefer Java. YMMV.

Patricia
.



Relevant Pages

  • Re: Command Line Interface
    ... This is somewhat I am aiming for, to be honest my idea for this is Java ... Netbean's 'console window' which it uses for user input and output. ... [user enters string and conv to double] ... CString GetString() ...
    (microsoft.public.vc.mfc)
  • Re: Help me!! Why java is so popular
    ... String or StringBuffer? ... keep in mind I knew NOTHING about Java. ... The language accepted it, no warnings, and thus I ... in some native assemblers you can peruse the instruction ...
    (comp.lang.java.programmer)
  • Re: question about assigning null to a reference object
    ... String getAuthor() ... void setAuthor ... b.setTitle("Thinking in Java 4th Edition"); ...
    (comp.lang.java.help)
  • Re: Console issues
    ... I have written a Java ... > application that is a GUI front end that launches separate executable ... > would automatically open a console window and the console ... or perhaps wrapping your external process in a non-standard ...
    (comp.lang.java.gui)
  • Re: Console issues
    ... I have written a Java ... > application that is a GUI front end that launches separate executable ... > would automatically open a console window and the console ... or perhaps wrapping your external process in a non-standard ...
    (comp.lang.java.programmer)