标题: 求指导 [打印本页] 作者: 张凯zk47 时间: 2014-12-11 18:55 标题: 求指导 提示: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("读取失败");
}
}
}
}
作者: Mr.Ni 时间: 2014-12-11 21:57
while ((len=fr.read( ???))!=-1)
fw.write(chs,0,len);
你读的数据没存到数组里面去,怎么从数组里往外面写东西?作者: wangcongwu 时间: 2014-12-11 22:12
char[] chs=new char[1024]; int len=0; while ((len=fr.read())!=-1)作者: wangcongwu 时间: 2014-12-11 22:14
char[] chs=new char[1024]; int len=0; while ((len=fr.read())!=-1) 你的那个fr.read()改成了fr.read(chs)就可以了,read()方法是读取一个数组或者一个字符,只要读取的是空的就返回给-1作者: 张凯zk47 时间: 2014-12-12 17:50
谢谢大神的指导,我太丢人了哦,呜呜呜……