- ベストアンサー
超基本的な質問?ファイルの変数
すごく基本的な質問だと思うのですが、 FileWriter 変数をクラスのメンバとしては持てないのでしょうか? たとえば、下のように書くとエラーが出るのですが、何がまずいのでしょうか? import java.io.FileWriter; public class FileTest { FileWriter fw; public static void main(String[] args) { try { fw = new FileWriter("test.txt"); fw.close(); } catch (Exception e) { System.out.println("Exception: " + e); } } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
エラーが出るのは static なメソッドから static でない変数をいじっているせいですね。FileWriter を使ったことはエラーの原因ではありません。 で、FileWriter をメンバにするのは別に構いませんが、いつ Writer を開く (new する) のか、そしていつ close するのかをちゃんと管理しないといけませんね。 メンバにするということは複数のメソッドから Writer にアクセスできるということなので、各メソッドの連繋関係などをちゃんと把握しておかないとリソースの解放し忘れなどの恐れがあります。
その他の回答 (1)
- isi0611
- ベストアンサー率34% (46/134)
こんばんは~(^o^)丿 mainメソッドの外で FileWriter fw; と書いてますね? この場合クラス変数とするので static FileWriter fw; と宣言すれば大丈夫ですよ! またこの場合だと普通に FileWriter fw = new FileWriter("test.txt"); と書いてしまった方がいいのでは?? では~(^o^)丿
お礼
うごきました。ありがとうございます!
お礼
分かりやすい説明、ありがとうございます!