本帖最后由 曾浩 于 2012-10-17 15:11 编辑
public class TestFileReader {
public static void main(String[] args) {
FileReader read = null;
try{
read = new FileReader("Hell.txt");
readShu(read);
int ch = 0;
try {
while((ch=read.read())!= -1){
System.out.println("ch="+(char)ch);
}
} catch (IOException e) {
e.printStackTrace();
}
}catch(FileNotFoundException e){
System.out.println(e);}
finally{
try {
if(read!=null)
read.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void readShu(FileReader read){
char [] ch = new char[3];
int num = 0;
try {
while((num=read.read(ch))!=-1){
System.out.println("num="+num+"-----"+new String(ch,0,num));
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(read!=null)
{ System.out.println("guan");
read.close();}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
为什么执行这个程序会出异常 当我不关闭 流时 程序不会有异常 只是没有往下执行了 当我关闭流时 程序就出现了异常
难道是应为调用了 readShu()方法 读取数据的指针已经读到数据的末尾了吗 如果是的话我关闭流为什么那个读取数据的指针为什么不复位呢?
|