私はJava 6.を使用してDataInputStream in = new DataInputStream(System.in);
を使用してユーザー入力を読み取ります。readLine()が非推奨になったとき。
DataInputStream in = new DataInputStream(System.in);
int num;
try
{
num = Integer.parseInt(in.readLine()); //this works
num = Integer.parseInt(in); //just in doesnt work.
}
catch(Exception e)
{
}
readLine()が非推奨になったときの説明としてください。
InputStream
は基本的にバイナリ構造です。 textデータ(コンソールなどから)を読みたい場合は、説明のReader
を使用する必要があります。 InputStream
をReader
に変換するには、InputStreamReader
を使用します。次に、BufferedReader
の周りにReader
を作成すると、BufferedReader.readLine()
を使用して行を読み取ることができます。
その他の選択肢:
非推奨と代替案は、通常 javadocs で既に明示的に説明されています。したがって、答えを探す最初の場所になります。 DataInputStream
の場合は、それを見つけることができます こちら 。 readLine()
メソッドは here です。関連性の抜粋は次のとおりです。
廃止予定このメソッドは、バイトを文字に適切に変換しません。 JDK 1.1の時点で、テキストの行を読み取るための好ましい方法は、
BufferedReader.readLine()
メソッドを使用することです。DataInputStream
クラスを使用して行を読み取るプログラムは、次の形式のコードを置き換えることにより、BufferedReader
クラスを使用するように変換できます。DataInputStream d = new DataInputStream(in);
で:
BufferedReader d = new BufferedReader(new InputStreamReader(in));
次に、InputStreamReader
のコンストラクターで文字エンコードを明示的に指定できます。
Java 1.5以降)が導入された Scanner
も、優れた(そして最新の)代替手段です。
以下は機能しませんが、
_num = Integer.parseInt(in);
_
代わりに使用する必要があります:
_num = Integer.parseInt(in.readLine());
_
readLine()
は、改行まで行の入力を読み取ります。