A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Werewolf_zl

初级黑马

  • 黑马币:23

  • 帖子:12

  • 精华:0

© Werewolf_zl 初级黑马   /  2015-4-10 17:43  /  467 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.FileWriter;
import java.io.IOException;

public class TestWriter {

        public static void main(String[] args) {
                try {
                        FileWriter fw = new FileWriter("D:\\test.txt");
                        fw.write("Hello!");
                       
                } catch (IOException e) {
                        e.printStackTrace();
                }
                fw.flush();
                fw.close();
        }
}

再Eclipse中,fw.flush();   fw.close();   这两句会报错,但写在try里面就不会报错,如何解决?

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

2 个回复

倒序浏览
变量作用域的问题,你把fw定义在try里,它只能作用在try后面的大括号里,你把fw定义在try外就没有问题了。 一般这样写
  1. FileWriter fw = null;
  2.                 try {
  3.                         fw = new FileWriter("D:\\test.txt");
  4.                         fw.write("Hello!");
  5.                         fw.flush();
  6.                 } catch (IOException e) {
  7.                         e.printStackTrace();
  8.                 } finally {
  9.                         if(fw != null)
  10.                         try {
  11.                                 fw.close();
  12.                         } catch (IOException e) {
  13.                                 e.printStackTrace();
  14.                         }
  15.                        
  16.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
xlunaer 发表于 2015-4-10 18:02
变量作用域的问题,你把fw定义在try里,它只能作用在try后面的大括号里,你把fw定义在try外就没有问题了。  ...

噢  谢谢啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马