java错误,找不到标示符

来源:互联网 发布:微信聊天数据迁移 编辑:程序博客网 时间:2024/06/05 22:36
import java.io.*;
public class FileStream
{
        public static void main(String[] args) 
{
                try
                {
                        FileOutputStream out=new FileOutputStream("afile.txt");
                }
                catch(Exception e)
                {
                        System.out.println("out can't be created");
                        e.printStackTrace();
                }
                try
                {      String str=new String("this is an example for FileOutputStream and FileInputStream");
                        out.write(str.getBytes());
                }
                catch(Exception e)
                {
                        System.out.println("out.write is error");
                        e.printStackTrace();
                }
                try
                {
                        out.close();
                }
                catch(Exception e)
                {
                        System.out.println("file can't be closed");
                        e.printStackTrace();
                }


File f=new File("afile.txt");

FileInputStream in=new FileInputStream(f);

对于上面的一段程序,在cmd下生成字节码文件时,出错

D:\JAVAWO~1\LEFBA9~1>javac FileStream.java
FileStream.java:17: 错误: 找不到符号
                        out.write(str.getBytes());
                        ^
  符号:   变量 out
  位置: 类 FileStream
FileStream.java:26: 错误: 找不到符号
                        out.close();
                        ^
  符号:   变量 out
  位置: 类 FileStream

如果将第一个try catch 语句注释掉,在main()方法后抛出异常throws Exception,则可以生成字节码文件,并可以正常运行 即改为

import java.io.*;
public class FileStream
{
        public static void main(String[] args) throws Exception 
{
                //try
                //{
                        FileOutputStream out=new FileOutputStream("afile.txt");
                //}
                //catch(Exception e)
                //{
                        //System.out.println("out can't be created");
                        //e.printStackTrace();
                //}
                try
                {      String str=new String("this is an example for FileOutputStream and FileInputStream");
                        out.write(str.getBytes());
                }
                catch(Exception e)
                {
                        System.out.println("out.write is error");
                        e.printStackTrace();
                }
                try
                {
                        out.close();
                }
                catch(Exception e)
                {
                        System.out.println("file can't be closed");
                        e.printStackTrace();
                }


File f=new File("afile.txt");
FileInputStream in=new FileInputStream(f);
                byte[] buf=new byte[1024];
int len=0;
len=in.read(buf);
                in.close();
System.out.println("文件afile中的内容是: "+new String(buf,0,len));

难道是第一个try catch 语句屏蔽了FileOutputStream 类的out对象,使下面在引用out时发生找不到符号的错误?

1 0
原创粉丝点击