1

JDK 7を使用していて、次のコードを使用して単純なファイルへの書き込み操作を実行しようとしています。

import java.io.BufferedWriter;
import java.io.FileWriter; // JAVA says this is conflicting...why?

FileWriter fw = new FileWriter("hello.txt");
BufferedWriter bw = new BufferedWriter(fw); // JAVA says this is an error and asks me to convert FileWriter to type Writer.

私はJDK7を使用しており、これは常にJavaでファイルに書き込む方法ですが、これはJDK 7の最初のものであり、機能しません。

誰かが理由を説明してもらえますか?

4

2 に答える 2

4

私が考えることができる唯一の理由は、コードフラグメントをコピーしたクラスと同じパッケージにFileWriterというクラスがあるということです。その場合、別のパッケージからFileWriterクラスをインポートすることはできませんが、コード自体で修飾名(java.io.FileWriter)を使用する必要があります。

于 2012-05-03T17:46:11.583 に答える
1

fwインスタンスをaにすることはできますWriterか?例えば

Writer fw = new FileWriter("hello.txt");
BufferedWriter bw = new BufferedWriter(fw);

具体的な実装ではなく、インターフェース/抽象化を使用することをお勧めします。

FileWriterは、Writerから継承するOutputStreamWriterから継承します。

さらに、BufferedWriterコンストラクターはインスタンスを期待しWriterます。

于 2012-05-03T17:40:37.870 に答える