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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luheqi 中级黑马   /  2014-6-27 18:46  /  1201 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 luheqi 于 2014-6-28 12:22 编辑

第一段Test2:最后try里面的“bfw”部分报错通不过,而第二段正常,求解???
  1. package com.company;

  2. import java.io.BufferedWriter;
  3. import java.io.FileWriter;
  4. import java.io.IOException;

  5. /**
  6. * Created by he on 2014/6/27.
  7. */
  8. public class Test2 {
  9.    

  10.     public static void main(String[] args) {

  11.         try {
  12.             FileWriter fw = new FileWriter("demo3.txt");
  13.             BufferedWriter bfw = new BufferedWriter(fw);
  14.             bfw.write("uasifuisbuisBufferedReaderbisb");
  15.          

  16.             System.out.println("sdbjsd21515");
  17.         } catch (IOException e) {
  18.             e.printStackTrace();
  19.         } finally {


  20.                 try {
  21.                     bfw.flush();
  22.                     bfw.close();
  23.                 } catch (IOException e) {
  24.                     e.printStackTrace();
  25.                 }
  26.         }
  27.     }
  28. }
复制代码
第二段 Test:
  1. package com.company;

  2. import java.io.FileReader;
  3. import java.io.FileWriter;
  4. import java.io.IOException;

  5. public class Test {
  6.     //public static final String LINE_SP = System.getProperty("line.separator");


  7.     public static void main(String[] args) {

  8.         FileReader fr = null;
  9.         FileWriter fw = null;
  10.         try {
  11.             fr = new FileReader("demo.txt");
  12.             fw = new FileWriter("demo2.txt");
  13.             char[] buf = new char[1024];
  14.             int len = 0;
  15.             while ((len = fr.read(buf)) != -1) {

  16.                 fw.write(buf, 0, len);
  17.             }
  18.         } catch (IOException e) {
  19.             e.printStackTrace();
  20.         } finally {
  21.         }

  22.         if (fw != null)
  23.             try {
  24.                 fw.close();
  25.             } catch (IOException e) {
  26.                 e.printStackTrace();
  27.             }
  28.         if (fr != null)
  29.             try {
  30.                 fr.close();
  31.             } catch (IOException e) {
  32.                 e.printStackTrace();
  33.             }




  34.     }
  35. }
复制代码




评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

3 个回复

倒序浏览
代码改成这样就正常了:
package com.company;

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

/**
* Created by he on 2014/6/27.
*/
public class Test2 {


    public static void main(String[] args) {
        FileWriter fw = null;
        BufferedWriter bfw = null;
        
        try {
            fw = new FileWriter("demo3.txt");
            bfw = new BufferedWriter(fw);
            bfw.write("uasifuisbuisBufferedReaderbisb");


            System.out.println("sdbjsd21515");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {


            try {
                bfw.flush();
                bfw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
回复 使用道具 举报
你自己不是回答了吗
BufferedWriter bfw = null 这个引用要建立在外面 才能在finally代码块中使用
回复 使用道具 举报
嗯,已经解决,谢谢啦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马