• ベストアンサー

超基本的な質問?ファイルの変数

すごく基本的な質問だと思うのですが、 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);     }   } }

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

エラーが出るのは static なメソッドから static でない変数をいじっているせいですね。FileWriter を使ったことはエラーの原因ではありません。 で、FileWriter をメンバにするのは別に構いませんが、いつ Writer を開く (new する) のか、そしていつ close するのかをちゃんと管理しないといけませんね。 メンバにするということは複数のメソッドから Writer にアクセスできるということなので、各メソッドの連繋関係などをちゃんと把握しておかないとリソースの解放し忘れなどの恐れがあります。

asa-h
質問者

お礼

分かりやすい説明、ありがとうございます!

その他の回答 (1)

  • isi0611
  • ベストアンサー率34% (46/134)
回答No.1

こんばんは~(^o^)丿 mainメソッドの外で FileWriter fw; と書いてますね? この場合クラス変数とするので static FileWriter fw; と宣言すれば大丈夫ですよ! またこの場合だと普通に FileWriter fw = new FileWriter("test.txt"); と書いてしまった方がいいのでは?? では~(^o^)丿

asa-h
質問者

お礼

うごきました。ありがとうございます!

関連するQ&A