java的IO操作的问题

huluwaandfuwa 2016-06-15 08:43:11
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

public class jioTest04 {
public static void main(String[] args) throws IOException{
Reader reader=new FileReader("h:/media/11.txt");
Writer writer=new FileWriter("h:/media/33.txt");
//int b=0;
while((reader.read())!=-1){
writer.write(reader.read());
}
System.out.println("复制文件完毕");
writer.close();
reader.close();

}
}

这段代码的功能是以字符方式复制文件,直接按照这种方式为什么每行内容中只复制了的最后一个汉字?
而当设置一个int b,令 b=reader.Reader();之后就可以全部输出来。求解答
...全文
123 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
reader.read()读两个字符却写一次,当然会漏掉了 按楼上的方法做
qq_15915835 2016-06-16
  • 打赏
  • 举报
回复
这样写是不对的。 read.read() 每次读取一个字符 下面这行代码已经读了一个字符。然后只做了判断没有向文件中写入,就是说每2个字符都是丢一个字符 如果 A文件的字符是abcd,读到b文件应该就只有db了,数据丢了。

while((reader.read())!=-1){
正确的做法是

	int b=0;
	while ( (b = reader.read()) != -1) {
		writer.write(b);
	}

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧