日期:2014-05-20  浏览次数:20783 次

在if下定义FileInputStream怎么出错?
if(file.exists()   &&   file.isFile())
FileInputStream   fis   =   new   FileInputStream(file);

这种定义错哪里了?

------解决方案--------------------
我看着没错 多贴些代码啊 或者说出来它提示什么错误
------解决方案--------------------
这样定义没有错误,提醒楼主记得捕获IO异常,不然会提示错误
------解决方案--------------------
是啊! 文件输入输出常常用到 捕获异常的! 要不然编译不过去!
------解决方案--------------------
JAVA不是C 要用try catch的
public class FileOutputStreamTest {
public FileOutputStreamTest() {
}

public static void main(String[] args) {
String str= "好好学习 Java ";
byte []words=str.getBytes();
try {
FileOutputStream obj = new FileOutputStream( "Text.txt ");
obj.write(words);
System.out.println( "Text文件已更新 ");
obj.close();
} catch (FileNotFoundException ex) {
System.out.println( "找不到该文件 ");
} catch (IOException ex) {
System.out.println( "输入输出有错 ");
}
}
}
了解???
------解决方案--------------------
确实要捕获异常.
------解决方案--------------------
这样子 if语句体要加大括号 可能不加的话 这一没被引用到的语句会被看空


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class Test {


public static void main(String[] args) throws FileNotFoundException {
File file = new File( "c:\\a.txt ");
if(file.exists() && file.isFile()){
FileInputStream fis = new FileInputStream(file);
}
}

}
------解决方案--------------------
File file = new File( "c:\\a.txt ");
FileInputStream fis = null;
if(file.exists() && file.isFile())
fis = new FileInputStream(file);
------解决方案--------------------
报的错是 "FileInputStream fis = new FileInputStream(file); not a Statement. "
应该是如果if里没有括号,只能是一个statement(怎么翻译?),不能有变量定义.