java初学者提问: 下面这个小程序是什么问题 为什么被写入的a.txt巨大无比而不是1.txt里的内容
importjava.io.*;publicclassTestCopy{publicstaticvoidmain(String[]args){intb=0;FileRea...
import java.io.*;
public class TestCopy{
public static void main(String[] args){
int b = 0;
FileReader fr = null;
FileWriter fw = null;
try{
fr = new FileReader("a://java//1//2.txt");
fw = new FileWriter("a://java//1//a.txt");
b = fr.read();
while(b!= -1){
fw.write(b);
}
fr.close();
fw.close();
}
catch(FileNotFoundException e){
System.out.println("未找到文件");
}
catch(IOException e1){
System.out.println("文件读写错误");
}
System.out.println("文件已copy");
}
} 展开
public class TestCopy{
public static void main(String[] args){
int b = 0;
FileReader fr = null;
FileWriter fw = null;
try{
fr = new FileReader("a://java//1//2.txt");
fw = new FileWriter("a://java//1//a.txt");
b = fr.read();
while(b!= -1){
fw.write(b);
}
fr.close();
fw.close();
}
catch(FileNotFoundException e){
System.out.println("未找到文件");
}
catch(IOException e1){
System.out.println("文件读写错误");
}
System.out.println("文件已copy");
}
} 展开
3个回答
展开全部
代码的问题啊。
看看
fw = new FileWriter("a://java//1//a.txt");
b = fr.read(); 读取第一字符 执行一次fr.read()方法读取一个字符。读全文需要循环执行的。
while(b!= -1){
fw.write(b); 把b写入文件 但是有没有读取新的b的值。b就没有变化一直都是最初的不是-1的值。这样会不停的向文件a.txt写入第一个字符的。
}
fr.close();
fw.close();
这样写的结果是读取第一个字符并且将字符不停的循环写入文件。
正确的写法
fw = new FileWriter("a://java//1//a.txt");
b=2;
while(b!= -1){
b = fr.read();
fw.write(b);
}
fr.close();
fw.close();
或者
fw = new FileWriter("a://java//1//a.txt");
while((b = fr.read())!= -1){
fw.write(b);
}
fr.close();
fw.close();
都行。
看看
fw = new FileWriter("a://java//1//a.txt");
b = fr.read(); 读取第一字符 执行一次fr.read()方法读取一个字符。读全文需要循环执行的。
while(b!= -1){
fw.write(b); 把b写入文件 但是有没有读取新的b的值。b就没有变化一直都是最初的不是-1的值。这样会不停的向文件a.txt写入第一个字符的。
}
fr.close();
fw.close();
这样写的结果是读取第一个字符并且将字符不停的循环写入文件。
正确的写法
fw = new FileWriter("a://java//1//a.txt");
b=2;
while(b!= -1){
b = fr.read();
fw.write(b);
}
fr.close();
fw.close();
或者
fw = new FileWriter("a://java//1//a.txt");
while((b = fr.read())!= -1){
fw.write(b);
}
fr.close();
fw.close();
都行。
展开全部
b = fr.read();
while(b!= -1){
fw.write(b);
}
这段有问题,你只读了第一个数,是个死循环,所以写的文件特别大
改为
b = fr.read();
while(b!= -1){
fw.write(b);
b=fr.read();//每写一个后需要再读下一个
}
while(b!= -1){
fw.write(b);
}
这段有问题,你只读了第一个数,是个死循环,所以写的文件特别大
改为
b = fr.read();
while(b!= -1){
fw.write(b);
b=fr.read();//每写一个后需要再读下一个
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while循环的地方出问题了,你的b!=-1这个条件一直是true,这是个死循环,你得读一次判断一次
while(b!= -1){
fw.write(b);
b=fr.read();//这样b的值才会变化
}
源程序里的b读了一次就不在变化了,所以是个死循环
while(b!= -1){
fw.write(b);
b=fr.read();//这样b的值才会变化
}
源程序里的b读了一次就不在变化了,所以是个死循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询