[解決済み] javaが非推奨のAPIを使用またはオーバーライドしているエラー
2022-01-28 03:13:53
質問
こんにちは、これは私のコードです、どういうわけか私はまだそこに私が説明したエラーを取得します、任意の助けは感謝されるだろう。私はこれのインポート、特にAPI自体の専門家ではありません。
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class MyClass {
public static void main(String[] args) throws IOException {
File file = new File("Sinatra.txt");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
if (dis.available() != 0) {
// Get the line.
String s = dis.readLine();
// Put words to array.
String[] sParts = s.split(" ");
// Initialize word longest length.
int longestLength = 1;
for (String strx : sParts) { // Go through each sPart, the next one is called strx
// If the document has word longer than.
if (longestLength < strx.length())
// Set new value for longest length.
longestLength = strx.length();
}
// Because array index from "0".
int[] counts = new int[longestLength + 1];
for (String str : sParts) {
// Add one to the number of words that length has
counts[str.length()] += 1;
}
// We use this type of loop since we need the length.
for (int i = 1; i < counts.length; i++) {
System.out.println(i + " letter words: " + counts[i]);
}
}
}
}
// Result:
// 1 letter words: 0
// 2 letter words: 2
// 3 letter words: 0
// 4 letter words: 1
// 5 letter words: 0
// 6 letter words: 2
// 7 letter words: 2
// 8 letter words: 0
// 9 letter words: 3
これは私のコードですが、これをコンパイルしようとすると というエラーが発生します。
Note: MyClass.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
ありがとうございました :)
どのように解決するのですか?
これらはエラーではなく、あなたのコードがコンパイルされたことを示す警告です。
これらの行を説明するために.
注:MyClass.javaは非推奨のAPIを使用またはオーバーライドしています。
の呼び出しをやっているんですね。
DataInputStream#readLine
これは、ドキュメントによると、JDK 1.1以降、非推奨となっています。
非推奨。
このメソッドはバイトを適切に変換しません。 文字になります。JDK 1.1 では、テキストの行を読み取るには、以下の方法が推奨されています。 BufferedReader.readLine()メソッドで行います。を使用するプログラムでは DataInputStream クラスを使用して行を読み取るように変換することができます。 BufferedReaderクラスのコードに置き換えることで、以下のようになります。
DataInputStream d = new DataInputStream(in);
を使っています。
BufferedReader d = new BufferedReader(new InputStreamReader(in));
2行目に関しては.
注意:詳細は-Xlint:deprecationで再コンパイルしてください。
これは、非推奨のものを使用している場所についての詳細を得るために、コンパイル時に使用するオプションを指示するだけです。
編集する。
あなたのコメントに従って、あなたのコードがどのように見えるか、ここに。
import java.io.InputStreamReader;//Add these two imports
import java.io.BufferedReader;
...
BufferedReader br = new BufferedReader(new InputStreamReader(bis));//Use BufferedReader as suggested by the doc instead of DataInputStream
...
String s = br.readLine();//Read with the non-deprecated readLine of BufferedReader
関連
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み】Eclipseで「公開型 <<classname>> は独自のファイルで定義する必要があります」エラー【重複あり
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】Javaメソッドスタブ
-
[解決済み】Javaの未処理例外について