写了段小代码,到最后为什么close()写在finally编译时就显示找不到符号fw,而把close写在catch里就正常了?import java.io.*;
public class TestFileWriter
{
public static void main(String[] args)
{
try
{
FileWriter fw =new FileWriter("f:\\java\\iverson.txt");
int c=0;
for(c=0;c<5000;c++)
{
fw.write(c);
}
//fw.close(); //写在这里正常运行
}
catch(IOException e)
{
System.out.println("文件错误");
e.printStackTrace();
}
finally //写在这里不正常
{
fw.close();
}
}
}
public class TestFileWriter
{
public static void main(String[] args)
{
try
{
FileWriter fw =new FileWriter("f:\\java\\iverson.txt");
int c=0;
for(c=0;c<5000;c++)
{
fw.write(c);
}
//fw.close(); //写在这里正常运行
}
catch(IOException e)
{
System.out.println("文件错误");
e.printStackTrace();
}
finally //写在这里不正常
{
fw.close();
}
}
}
FileWriter fw = null ;
放到try外面定义 就可以了
public static void main(String[] args) {
{
int i = 0;
}
System.out.println(i);
}
同样都是获取不到i这个东西的