[解決済み] Closeable を実装しているか、AutoCloseable を実装している。
2022-04-27 12:13:14
質問
Javaを勉強している最中なのですが、このページで紹介されている
implements Closeable
と
implements AutoCloseable
のインターフェイスを使用します。
を実装したところ
interface Closeable
を使用すると、Eclipse IDE は
public void close() throws IOException
.
を使用してストリームを閉じることができます。
pw.close();
インターフェイスを使用せずに しかし、どのようにすれば
close()
メソッドを使用します。また、このインターフェースは何のためにあるのでしょうか?
また、次のことも知りたいです。
IOstream
は本当に閉じていたのでしょうか?
私は以下の基本的なコードを使っていました。
import java.io.*;
public class IOtest implements AutoCloseable {
public static void main(String[] args) throws IOException {
File file = new File("C:\\test.txt");
PrintWriter pw = new PrintWriter(file);
System.out.println("file has been created");
pw.println("file has been created");
}
@Override
public void close() throws IOException {
}
解決方法は?
インターフェイスにあまり慣れていないようですね。あなたが投稿したコードでは、インターフェイスを実装する必要はありません。
AutoCloseable
.
を実装するだけでよい(はず)。
Closeable
または
AutoCloseable
を実装しようとしているのであれば
PrintWriter
ファイルや他のリソースを処理し、クローズする必要があります。
あなたの実装では
pw.close()
. これは、finally ブロックの中で行う必要があります。
PrintWriter pw = null;
try {
File file = new File("C:\\test.txt");
pw = new PrintWriter(file);
} catch (IOException e) {
System.out.println("bad things happen");
} finally {
if (pw != null) {
try {
pw.close();
} catch (IOException e) {
}
}
}
上のコードはJava6関連です。Java 7 では、これはよりエレガントに行うことができます ( この回答 ).
関連
-
スタイルが読み込まれず、ブラウザコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
SpringBootApplication を型解決できない。
-
サーブレットクラスのインスタンス化エラーの解決法
-
Methodのinvokeメソッド実装のJavaリフレクション
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] Javaインターフェースでスタティックメソッドを定義できないのはなぜですか?
-
[解決済み】インプリメントとエクステンド。いつ使う?その違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
SpringBootApplication を型解決できない。
-
Dateが型に解決できない問題を解決する
-
プロジェクトの依存関係を解決できなかった 解決
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
自動配線された依存性のインジェクションに失敗しました。
-
linux run jarfile Invalid or corrupt jarfile error.
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind