黑马程序员技术交流社区

标题: 方法调用出现的错误 [打印本页]

作者: 齐宁宁    时间: 2014-10-15 15:39
标题: 方法调用出现的错误
public class MyEncoderText {
        public static void main(String[] args)throws Exception {
                String path0=args[0];
                String path1=args[1];
                FileInputStream in=new FileInputStream(path0);
                FileOutputStream out=new FileOutputStream(path1);
                 cypher(in,out);       //为什么在这里会出错,The method cypher(InputStream, OutputStream) in the type MyEncoderText is not applicable                                                 //for the arguments (FileInputStream, FileOutputStream)
                 System.out.println("结束");
                out.close();          
        }
        private static void cypher(InputStream inp,OutputStream oup)throws Exception{
                int len=-1;
                System.out.println("0:  "+len);               
                        while ((len=inp.read())!= -1){
                                System.out.println("1: "+len);
                                oup.write(len^102^91);
                                System.out.println("2: "+len);
                        }
                        System.out.println("3: "+oup);               
        }
}
为什么运行会出错?The method cypher(InputStream, OutputStream) in the type MyEncoderText is not applicable for the arguments (FileInputStream, FileOutputStream)
不能将FileInputSrteam类型的对象传入到参数类型为InputStream的方法中吗?



作者: Nullifier    时间: 2014-10-15 16:21
FileInputStream in=new FileInputStream(path0); 这句你的参数接收的是字符串,得把他转换成文件对象
FileInputStream in=new FileInputStream(new File(path0));
作者: 齐宁宁    时间: 2014-10-15 19:53
Nullifier 发表于 2014-10-15 16:21
FileInputStream in=new FileInputStream(path0); 这句你的参数接收的是字符串,得把他转换成文件对象
Fi ...

FileInputStream是可以直接接受文件路径的,下面方法中参数类型变成FileInputStream就可以了,但是这样参数就非常限制了。
作者: 哈达洋    时间: 2014-10-15 20:48
我执行你的代码没有错。可能你是在调用java命令的时候,为main传入的参数有问题
作者: Nullifier    时间: 2014-10-15 21:02
齐宁宁 发表于 2014-10-15 19:53
FileInputStream是可以直接接受文件路径的,下面方法中参数类型变成FileInputStream就可以了,但是这样参 ...

哦 哦谢谢提醒我一直转对象来着
作者: 齐宁宁    时间: 2014-10-16 21:20
哈达洋 发表于 2014-10-15 20:48
我执行你的代码没有错。可能你是在调用java命令的时候,为main传入的参数有问题 ...

但是我的代码连编译器都过不了啊,会提示出错,只要把方法中的参数类型变成FileInputStream运行就没问题,不知道什么情况,
作者: 齐宁宁    时间: 2014-10-16 21:21
Nullifier 发表于 2014-10-15 21:02
哦 哦谢谢提醒我一直转对象来着

不客气,一起相互学习:lol




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