A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.*;
public class RuXue6 {

        public static void main(String[] args)
        {
                BufferedOutputStream bo=null;
                BufferedInputStream bi=null;
                try
                {
                        bi=new BufferedInputStream(new FileInputStream("f:\\Demo.txt"));
                        bo=new BufferedOutputStream(new FileOutputStream("f:\\Demo_copy.txt"));
                        byte[] buf=new byte[1024];
                        int len=bi.read(buf);
                        while(len!=-1)
                        {
                                bo.write(buf, 0,len);
                                bo.flush();
                        }
                }
                catch(IOException e)
                {
                        System.out.println("你的路径是错误的!");
                       
                }
                finally
                {
                        if(bi!=null)
                        {
                                try
                                {
                                        bi.close();
                                }
                                catch(IOException e)
                                {
                                        System.out.println("读取流关闭失败!");
                                }
                        }
                        if(bo!=null)
                        {
                                try
                                {
                                        bo.close();
                                }
                                catch(IOException e)
                                {
                                        System.out.println("输入流关闭失败!");
                                }
                        }
                        System.out.println("复制成功!");
                }

        }
       

评分

参与人数 1技术分 +1 收起 理由
贺奕凯 + 1

查看全部评分

3 个回复

倒序浏览
还记得梦想吗 来自手机 中级黑马 2013-12-5 08:06:01
沙发
while 语句里的len=(bi.read的)不能写外边,因为是变化的,
回复 使用道具 举报
import java.io.*;
public class RuXue6 {

        public static void main(String[] args)
        {
                BufferedOutputStream bo=null;
                BufferedInputStream bi=null;
                try
                {
                        bi=new BufferedInputStream(new FileInputStream("f:\\Demo.txt"));                        
                        bo=new BufferedOutputStream(new FileOutputStream("f:\\Demo_copy.txt"));
                        
                        byte[] buf=new byte[1024];
                        int len=0;
                        
                        while((len=bi.read(buf))!=-1)
                        {
                                bo.write(buf, 0,len);                              
                        }
                }
                catch(IOException e)
                {
                        System.out.println("你的路径是错误的!");
                        
                }
                finally
                {               
            
                    try
                    {
                            if(bi!=null)
                        bi.close();
                    }
                    catch(IOException e)
                    {
                            System.out.println("读取流关闭失败!");
                    }           
                        
                        
                    try
                    {
                            if(bo!=null)
                            bo.close();
                    }
                    catch(IOException e)
                    {
                            System.out.println("输入流关闭失败!");
                    }
                        
                        System.out.println("复制成功!");
                }

        }
}
我帮你改了一下,我也是初学者,相互学习。你再觉得有疑问建议把相关章节的视频看一下,要我说什么很深奥的,解释原理什么的我也说不上来。

评分

参与人数 1技术分 +1 收起 理由
贺奕凯 + 1 鼓励下

查看全部评分

回复 使用道具 举报
在判断len的时候他永远是1024个字节,永远不能等于-1
所以你读取的时候应该吧len=bi.read(buf))!=-1 房子while()中,
所以他读取的时候就从1025开始读,每次循环都读,
并不是读一遍,永远是1024
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马