关于关闭输入流的有关问题
关于关闭输入流的问题
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
------解决方案--------------------
FileInputStream fis = null;
定义到try外面就行了。
------解决方案--------------------
你声明的fis的作用域不在finally里面,所以在finally的时候不认,看我改的就可以了
j2ee j2se这些东西你需要继续多学习才行,现在跟你说也就是个模糊的样子
你只需要知道j2ee的类库跟j2se不一样,j2ee依赖于j2se就可以了
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
------解决方案--------------------
FileInputStream fis = null;
定义到try外面就行了。
------解决方案--------------------
你声明的fis的作用域不在finally里面,所以在finally的时候不认,看我改的就可以了
j2ee j2se这些东西你需要继续多学习才行,现在跟你说也就是个模糊的样子
你只需要知道j2ee的类库跟j2se不一样,j2ee依赖于j2se就可以了
- Java code
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"); } } } }
------解决方案--------------------