>> int bytesread=infile.read();
>> long length=file1.length();
>> for(long i=0;i<length;i++)
>> {
>> bytesread=infile.read();
>> outtoFile.write(bytesread);
>> }
byte bytesread[] = new byte[1];
infile.read(bytesread);
long length=file1.length();
for(long i=0;i<length;i++)
{
bytesread=infile.read();
outtoFile.write(bytesread);
}

解决方案 »

  1.   

    to  bugn(unknown& whoami):请问为什么要这样改呢?
    如我的程序:每次读取一个字节,写入一个字节。
    for(long i=0;i<length;i++)
    {
    bytesread=infile.read();
    outtoFile.write(bytesread);
    }而你修改以后的也是每次读取一个字节。按理说功能是一样的阿。
    我就是不明白
    到底是读取文件的时候发生了变化还是写入的时候发生了变化。
    麻烦你详细讲解一下,谢谢。
      

  2.   

    查文档int read()           Read a single character.character与byte不一样
      

  3.   

    你能保证最后的一定把那个数组装满吗你应该用FileInputStream ,FileOutputStream.我写一个代码段,
          InputStream in =new FileInputStream("from file name");
          OutputStream out=new FileOutputStream("to file name");
          byte[] buff=new byte[1024];
          int len;
          while((len=in.read(buff))!=-1){
            out.write(buff,0,len);
          }
          in.close();
          out.close();
      

  4.   

    //我不信这样不行!
    //你可以把相关代码放在构造函数中!本程序适用于任何类型文件、任何平台!
    import  java.io.*;  
    class  CopyF  
    {  
       public  static  void  main(String arg[])
        throws  IOException    //使用FileInputStream和FileOutStream  
       {  
           FileInputStream  fi=new  FileInputStream("a.txt");  
           FileOutputStream  fo=new  FileOutputStream("b.txt");  
          
           int i=fi.read();  
         while(i!=-1)   //当读到文件尾时返回-1
           { 
              fo.write(i);  
              i=fi.read();
            } 
             fi.close();  
             fo.close();  
       }  
    }
      

  5.   

    复制得就是慢点!
    我复制一个4.35M的MP3 文件花了35秒我可是p4、256M,不过我开了好些程序!
      

  6.   

    你把缓冲区开大,会很快的。我用4K的缓冲区,我拷贝电影都很快呀。上面的代码就是我以前用以拷贝不完整的文件。有多少字节算多少字节的。
    因为用操作系统的拷贝,读VCD中数据被损伤的文件不会成功。
      

  7.   

    to tanghuan() 
    开哪儿的缓冲区?什么意思?