DataInputStreamDemo でデモ コードをコンパイル中に次のエラーが発生しました: error:
i= Integer.parseInt(dis.readLine()) [Deprecated]
//ここで、dis = 参照 DataInputStream obj
DataInputStreamDemo でデモ コードをコンパイル中に次のエラーが発生しました: error:
i= Integer.parseInt(dis.readLine()) [Deprecated]
//ここで、dis = 参照 DataInputStream obj
このメソッドのjavadoc は、なぜそれが廃止され、長い間廃止されてきたのかを合理的に明らかにし、より良い代替案を提案しています。
Javadoc からの引用:
このメソッドは、バイトを文字に正しく変換しません。JDK 1.1 では、テキストの行を読み取るための推奨される方法は、BufferedReader.readLine() メソッドを使用することです。DataInputStream クラスを使用して行を読み取るプログラムは、次の形式のコードを置き換えることにより、BufferedReader クラスを使用するように変換できます。
DataInputStream d = new DataInputStream(in);
と:
BufferedReader d
= new BufferedReader(new InputStreamReader(in));
メソッドが推奨されない理由:
このメソッドは、バイトを文字に正しく変換しません。
解決
既存のコード:DataInputStream d = new DataInputStream(in);
変更されたコード:BufferedReader d
= new BufferedReader(new InputStreamReader(in));