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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 潘际昌 于 2013-11-27 15:43 编辑

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黑马币 +3 收起 理由
枫儿 + 3 代码看不清,建议文本复制后发表.

查看全部评分

5 个回复

倒序浏览
哥们分辨率调的太高了?对眼睛不好哦。看不清啊
回复 使用道具 举报
你的while循环有问题,你觉得你打开的文件能一次就把byte填满了吗,读文件你还是查看有关的例子。2.你的bo.flush()操作,吧bo变成了null,所以你下面的close操作没有执行,所以一直往里写文件。3.刚开始建议你,关闭流的操作直接写在下面就好,别用fianlly,等应用熟练再说。
回复 使用道具 举报
你的while循环有问题啊。while(len!=-1),如果你的读取流读到内容了,len肯定不是-1了,你这样循环,就是一个死循环!不是程序一直在读取,而是出于一个死循环中,一直在往目的文件中重复的写入内容。
你应该这样写:while((len=bi.read(buf))!=-1){写上你循环中的代码}。这样才是当文件中的数据读取完毕,那么read()方法返回-1,那么这个循环就结束了。
回复 使用道具 举报
你把if(bi!=null)和if(bo!=null)都放在太容易里面试试?
回复 使用道具 举报
import java.io.*;
public class Test4 {

        public static void main(String[] args)
        {
                BufferedOutputStream bo=null;
                BufferedInputStream bi=null;
                try
                {
                        bi=new BufferedInputStream(new FileInputStream("D:\\123.jpg"));
                        bo=new BufferedOutputStream(new FileOutputStream("d:\\Demo_copy.jpg"));
                        byte[] buf=new byte[1024];
                        int len = 0;
                        //这里改一下,你原来不停地重复写入读取的第一组数据
                        while((len = bi.read(buf))!=-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("复制成功!");
                }

        }
}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马