本文共 2359 字,大约阅读时间需要 7 分钟。
不规范的代码如下:
import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class GetClassError { public List getClass(String fileName){ File classFile = new File(fileName); List classNames = new ArrayList(); try{ FileReader fileReader = new FileReader(classFile); BufferedReader bufferread = new BufferedReader(fileReader); String readContent = null ; try{ while((readContent=bufferread.readLine())!=null){ classNames.add(readContent); } bufferread.close(); fileReader.close(); }catch(IOException e){ e.printStackTrace(); } }catch(FileNotFoundException e){ e.printStackTrace(); } return classNames ; } public static void main(String args[]){ GetClassError t = new GetClassError(); List classNames = t.getClass("C:\\Users\\TF\\Desktop\\aaa.txt"); System.out.println(classNames.toString()); }}修改完正确的代码如下;
package com.sides.hkc;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class GetClassRight { public List getClass(String fileName){ File classFile = new File(fileName); List classNames = new ArrayList(); FileReader fileReader = null; try{ fileReader = new FileReader(classFile); BufferedReader bufferread = new BufferedReader(fileReader); String readContent = null ; try{ while((readContent=bufferread.readLine())!=null){ classNames.add(readContent); }// bufferread.close();// fileReader.close(); }catch(IOException e){ e.printStackTrace(); }finally{ if(bufferread!=null){ try{ bufferread.close(); }catch (IOException e){ throw new RuntimeException("关闭失败"); } } } }catch(FileNotFoundException e){ e.printStackTrace(); }finally{ if(fileReader!=null){ try{ fileReader.close(); }catch (IOException e){ throw new RuntimeException("关闭失败"); } } } return classNames ; } public static void main(String args[]){ GetClassRight t = new GetClassRight(); List classNames = t.getClass("C:\\Users\\TF\\Desktop\\aaa.txt"); System.out.println(classNames.toString()); }}注意点:1.注意流的空指针异常,跟流的关闭时异常处理;
2.多个流关闭时的异常需要分try进行关闭,参考上一文中的io操作注意一文
转载地址:http://umadi.baihongyu.com/