关于关闭输入流的问题 import java.io.File; import java.io.FileInputStream; public class main {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try{ FileInputStream fis =null; fis = new FileInputStream ("d:/test/11.txt"); byte [] data = new byte [1024]; int i = 0; int n = fis.read(data);
String s = new String(data,0,n); System.out.println(s); }catch(Exception e){ e.printStackTrace(); }finally{ try{ fis.close();
}catch(Exception e){ System.out.println("cao"); }
}
}
} 小弟刚开始学java,这是在学习输入流的时候写的一段代码,可是编译的时候在fis.close()这里出了问题,eclipse给出的提示是fis cannot be resolved,这是怎么意思啊? 还有那位大哥能给解释一下是什么是j2ee,java ee,java se么,百度搜索了一下还是不理解这几个的区别。谢谢
------解决方案-------------------- Java里面的语句块是以 "{" 开始,以"}"结束,在语句块内定义的变量的作用域只是当前语句块,所以fis 会报未定义,你可以把FileInputStream fis定义为全局变量,这样就没有问题了。 j2ee==java ee,只不过j2ee这个叫法是很久以前的叫法,现在叫java ee
import java.io.File;
import java.io.FileInputStream;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
FileInputStream fis =null;
try{
fis = new FileInputStream ("d:/test/11.txt");
byte [] data = new byte [1024];
int i = 0;
int n = fis.read(data);
String s = new String(data,0,n);
System.out.println(s);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
fis.close();
}catch(Exception e){
System.out.println("exception");
}
}
}
}
------解决方案--------------------