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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张凯zk47 中级黑马   /  2014-12-11 18:55  /  1692 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

提示:Exception in thread "main" java.lang.IndexOutOfBoundsException
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:102)
        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:190)
        at copyTest.copy_2(copyTest.java:23)
        at copyTest.main(copyTest.java:9)
代码:


//文件的复制
import java.io.*;
class copyTest
{
        public static void main(String[] args) throws IOException
        {
                copy_2();
        }
        public static void copy_2()
        {
                FileWriter fw=null;
                FileReader fr=null;
                try
                {
                        fw=new FileWriter("F:\\zk-Dome\\copyof.txt");
                        fr=new FileReader("F:\\zk-Dome\\getSingleE.java");
                        char[] chs=new char[1024];
                        int len=0;
                        while ((len=fr.read())!=-1)
                        {
                                fw.write(chs,0,len);
                        }
                }
                catch (IOException e)
                {
                        throw new RuntimeException("读写失败");
                }
                finally
                {
                        if(fw!=null)
                        try
                        {
                                fw.close();
                        }
                        catch (IOException e)
                        {
                                throw new RuntimeException("写入失败");
                        }
                        if(fr!=null)
                        try
                        {
                                fr.close();
                        }
                        catch (IOException e)
                        {
                                throw new RuntimeException("读取失败");
                        }
                }
               

        }       
}

4 个回复

倒序浏览
   while ((len=fr.read( ???))!=-1)
        fw.write(chs,0,len);
你读的数据没存到数组里面去,怎么从数组里往外面写东西?
回复 使用道具 举报
char[] chs=new char[1024];                         int len=0;                         while ((len=fr.read())!=-1)
回复 使用道具 举报
char[] chs=new char[1024];                         int len=0;                         while ((len=fr.read())!=-1) 你的那个fr.read()改成了fr.read(chs)就可以了,read()方法是读取一个数组或者一个字符,只要读取的是空的就返回给-1
回复 使用道具 举报
谢谢大神的指导,我太丢人了哦,呜呜呜……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马