> Hi,
> I've got 2 question:
[quoted text clipped - 8 lines]
> }
> 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
> 1) I'd like to read a double value from console, so I wrote:
>
[quoted text clipped - 11 lines]
> double d;
> cin >> d;
You need to do once:
Scanner scn = new Scanner(System.in);
and then for each time you want to read a double:
double d = sv.nextDouble();
(and to catch exceptions somewhere but not necessarily with
a try catch around every read)
> 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?
Actually it is not like that in C++.
It is like that in certain C++ compilers that are compatible with
certain popular C compilers in the early 90's.
getch is not part of ANSI C or ANSI C++.
I am not aware of any way to do the same in a Java console app.
Probably due to the fact that the feature is not possible on all
platforms.
Arne