黑马程序员技术交流社区

标题: IO字节流小练习错误 [打印本页]

作者: youc3576    时间: 2011-9-18 08:14
标题: IO字节流小练习错误
大家帮我看看 这个代码为啥报错啊?我是看完视频自己想出来的 为什么不可以?代码如下:
package com.youc;

import java.io.File;
import java.io.FileOutputStream;

public class OutputStream {

        /**
         * @param args
         */
        public static void main(String[] args) throws Exception{
                // TODO Auto-generated method stub
                File f = new File("d:"+File.separator+"tset.txt");
            OutputStream out = null;
                out = new FileOutputStream(f);
                String str = "hello  nihao ";
                byte[] b = str.getBytes();
                out.write(b);
        }

}
首先OutputStream 的直接子类有ByteArrayOutputStream, FileOutputStream, FilterOutputStream, ObjectOutputStream, OutputStream, PipedOutputStream 那为什么out在实例化对象的时候不可以实例出
FileOutputStream对象?而要求我强制定义成FileOutputStream的类型?
PS;包都import了。。。。。thank you。。。。
作者: 匿名    时间: 2011-9-18 08:38
你的代码没错啊
能成功执行的:o
作者: 匿名    时间: 2011-9-18 12:10
你的OutputStream out = null这一句中OutputStream 和类名一样,程序会认为你是在新建一个类的对象,而不是新建OutputStream,你把类名改掉就可以了,比如像这样:
public class OutputStreamtest {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
            // TODO Auto-generated method stub
            File f = new File("d:"+File.separator+"tset.txt");
        OutputStream out =  new FileOutputStream(f);
            String str = "hello  nihao ";
            byte[] b = str.getBytes();
            out.write(b);
    }

}
我试过,可以成功运行.
作者: 匿名    时间: 2011-9-18 12:58
[quote] 原帖由 [i]王清云[/i] 于 2011-09-18 12:10 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=10037&ptid=1579][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]你的OutputStream out = null这一句中OutputStream 和类名一样,程序会认为你是在新建一个类的对象,而不是新建OutputStream,你把类名改掉就可以了,比如像这样:
public class OutputStreamtest {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
            // TODO Auto-generated method stub
            File f = new File("d:"+File.separator+"tset.txt");
        OutputStream out =  new FileOutputStream(f);
            String str = "hello  nihao ";
            byte[] b = str.getBytes();
            out.write(b);
    }

}
我试过,可以成功运行. [/quote]
二楼说的对,自己定义的类名有问题。
作者: 匿名    时间: 2011-9-18 13:09
乱定义类名
作者: 匿名    时间: 2011-9-18 13:17
自己定义的类名如果与系统的类名(或者他人的类名)冲突,调用的时候要指定包名的,要不然调用的可能是系统的类,或者异常
作者: 匿名    时间: 2011-9-18 17:37
标题: 回复 藤椅 的帖子
谢谢!!!!!!!!!这下知道了记住了!!!
作者: 匿名    时间: 2011-9-20 22:22
public class OutputStream-----> 定义的类名与java类库中的java.io.OutputStream一样了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2