黑马程序员技术交流社区

标题: 请教一问题 这个代码错误怎么解决? [打印本页]

作者: @coffee    时间: 2015-1-17 18:07
标题: 请教一问题 这个代码错误怎么解决?


import java.io.*;
class MyBufferedInputStream
{
private InputStream in;
private int pos = 0,count = 0;
private byte[] buf = new byte[1024];
MyBufferedInputStream(InputStream in)
{
  this.in = in;
}
public int myRead() throws IOException
{
  if(count == 0)
  {
   count = in.read(buf);
   if(count < 0)
    return -1;
   pos = 0;
   byte b = buf[pos];
   count--;
   pos++;
   return b&255;
  }
  else if (count > 0)
  {
   byte b = buf[pos];
   count--;
   pos++;
   return b&255;
  }
  return -1;
}
public void myClose() throws IOException
{
  in.close();
}
}
class MyBufferedInputStreamDemo
{
public static void main(String[] args)
{
  long start = System.currentTimeMillis();
  MyBufferedInputStream bis = null;
  BufferedOutputStream bos = null;
  try
  {
   bis = new MyBufferedInputStream (new FileInputStream("mp3.exe"));//错点
   bos = new BufferedOutputStream (new FileOutputStream("mp32.exe"));
   byte[] buf = new byte[1024];
   int ch =0;
   while((ch = bis.myRead(buf))!=-1)
   {
    bos.write(buf,0,ch);
   }
  }
  catch (IOException e)
  {
   throw new RuntimeException("复制失败");
  }
  finally
  {
   try
   {
    if(bis != null)
     bis.myClose();
   }
   catch (IOException e)
   {
    throw new RuntimeException("读取失败");
   }
   try
   {
    if(bos != null)
     bos.close();
   }
   catch (IOException e)
   {
    throw new RuntimeException("读取失败");
   }
  }
  long end = System.currentTimeMillis();
  System.out.println((end-start)+"毫秒");
}
}

/*

E:\java\day19>javac MyBufferedInputStreamDemo.java
MyBufferedInputStreamDemo.java:74: 错误: 无法将类 MyBufferedInputStream中的方法
myRead应用到给定类型;
                        while((ch = bis.myRead(buf))!=-1)
                                       ^
  需要: 没有参数
  找到: byte[]
  原因: 实际参数列表和形式参数列表长度不同
1 个错误
*/

作者: Gonnaloveu    时间: 2015-1-17 19:06
MyBufferedInputStream中的方法myRead()是无参的方法 你往里传参数buf当然不行 你得写个带参数的方法
作者: @coffee    时间: 2015-1-17 20:10
Gonnaloveu 发表于 2015-1-17 19:06
MyBufferedInputStream中的方法myRead()是无参的方法 你往里传参数buf当然不行 你得写个带参数的方法 ...

你说的对! :handshake
作者: yukuoyuan    时间: 2015-1-17 21:23
怎么可以这么长啊 ,以后是不是还要更长啊
作者: wangcongwu    时间: 2015-1-17 21:32
你错误的原因是不知道用代码粘贴模块
作者: dwy_hm    时间: 2015-1-17 21:47
myRead()是无参的方法
作者: @coffee    时间: 2015-1-24 23:58
:handshake
作者: 梁小刀11    时间: 2015-1-25 23:02
好长...能用封装吗
作者: @coffee    时间: 2015-1-26 00:19
yukuoyuan 发表于 2015-1-17 21:23
怎么可以这么长啊 ,以后是不是还要更长啊

既然喜欢这行 ,就不要怕吃苦。
作者: @coffee    时间: 2015-1-26 00:20
wangcongwu 发表于 2015-1-17 21:32
你错误的原因是不知道用代码粘贴模块

想 先找找手感!!
作者: ㏒假™面具    时间: 2015-2-7 01:25
myRead()方法无参数,你传进一个buf...




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