黑马程序员技术交流社区
标题:
编译通过,运行是出现问题
[打印本页]
作者:
付左军
时间:
2012-5-14 16:41
标题:
编译通过,运行是出现问题
import java.io.*;
class CopyDemo
{
public static void main(String [] args)
{
copy();
}
public static void copy()
{
FileReader fr=null;
FileWriter fw=null;
try
{
fr=new FileReader("D:\\葵花宝典.txt");
fw= new FileWriter("F:\\葵花宝典复制版.txt");
char[] buf=new char[1024];
int len=0;
while((len=fr.read())!=-1)
{
fw.write(buf,0,len);
}
}
catch(IOException e)
{
System.out.println("读写失败");
}
finally
{
if (fr!=null)
{
try
{
fr.close();
}
catch(Exception e)
{
}
}
if (fw!=null)
{
try
{
fw.close();
}
catch(Exception e)
{
}
}
}
}
}
复制代码
编译通过运行时提示“main”角标越界
作者:
赵玮_Tom
时间:
2012-5-14 17:08
第18行代码while((len=fr.read())!=-1);这根本就不是再往数组里面读写,请改为while((len=fr.read(buf))!=-1);
这样才是往数组中存放内容。
作者:
小小企鹅
时间:
2012-5-14 18:18
本帖最后由 小小企鹅 于 2012-10-27 22:36 编辑
while((len=fr.read())!=-1) 只读了一个字符,也没有将内容赋值给buf,可以改为 while((len=fr.read(buf))!=-1)
public static void main(String[] args)
{
Copy copyfile= new Copy();
}
Copy(){
try {
copyFromTo("abc.txt","abc_copy.txt");
}catch(IOException e){
throw new RuntimeException("读写失败!");
}
}
public void copyFromTo(String from, String to) throws IOException {
FileReader fr = new FileReader(from);
FileWriter fw = new FileWriter(to);
char[] buf = new char[1024];
int num = 0;
while((num = fr.read(buf)) != -1)
{
String str = new String(buf,0,num);
fw.write(str);
}
fr.close();
fw.close();
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2