关于输入输出流 Read和Write 的程序 求高手大侠耐心看下,能帮小弟解惑一把 感激不尽······!!!!

import java.io.*;
public class TestCopy{
public static void main(String[] args){
FileReader fr = null;
FileWriter fw = null;

try{
fr = new FileReader("F:/Book/01.txt");
fw = new FileWriter("F:/Book/02.txt");
int c = 0;

while((c = fr.read())!= -1){ fw.write(c); }
//把fr文件的内容复制到fw文件里。 read()可以写成c=fw.read();但write不可以写成c=fw.write().这样编译出错。

fw.flush();
}catch(FileNotFoundException e){ e.printStackTrace();}
catch(IOException e){ e.printStackTrace();}
finally{
try{
if(null != fw){ fw.close();}
if(null != fr){ fr.close();}
}catch(IOException e){ e.printStackTrace();}
}
}
}

为什么 int c=fr.read() 或 int c=0;c=fr.read()
然后while(c!=-1){ fw.write(c);}不行呢? 这样写 会出现无限复制。

因为你每次读的都是第一个字,没有变过;所以会无限制的读下去。
你可以使用ReadLine() 一行一行的读取,Read()返回的是int 类型的

c=fw.Writer():这种是错误的,Writer()方法返回类型是Void追问

能再说的详细点吗 高手 呵呵 我菜鸟
int c = 0;
c = fr.read();
while(c != -1){ } 这样写每次读都是第一个字不会变吗? c.read()不是会依次读出来么?Readline就先不弄 咱太笨了 这个还没明白 想把这个先搞明白 感激·····

追答

你可以在那句代码上加个断点,调试一下,就知道了

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-02
它有一个readLine()这个方法, 这个方法可以提高字符输入流的效率, 每次读取一行, 肯定比每次读一字符效率高很多吧? 注意看它的构造器,就是可以把 一些

各位大虾能帮小弟一把吗?有几个关于电脑术语的名词解释
如果单击界面中的“Advanced”按钮,在关联界面中提供了针对设置的NTFS分区高级设置,其中包括设置为只读属性“Read-Only”、允许写入“Write-Through”。对于检查点间隔“Checkpoint Interval”和写回间隔“Writeback nterval”,使用程序提供的默认设置即可。] 9、如何在DOS系统下直接读写NTFS文件系统? Winternals Software...

求高手帮看下修改下C程序,能通过keil编译的,生成HEX文件。
1、添加了一句变量申明: extern uchar Cur_Speed;2、添加了LCD1602.H和AT24C02.H两个头文件 3、Write_AT24C02_Byte函数名中的W有时大写,有时是小写w,你应该把它们统一一下 4、Dis_Mileage函数名也是大小写不统一 5、Init_1602函数名也是大小写不统一 6、Init_AT24C02函数名大小写不统一 7、Read...

...指令引用的“0x?ffffffff”内存。该内存不能为“read”。_百度...
内存指令不能read,这是在电脑使用中经常出现的问题,内存是主板上的存储部件,是CPU直接与之沟通,并用其存放当前正在使用的数据和命令的重要部件。当你用键盘或鼠标输入某个命令后,CPU就会解释命令并将指令或程式载入到内存中,这样程序才能够被执行。而一旦内存发生问题了,程序就不能被执行,因此就产...

该内存不能为read
详情请查看视频回答

谁能说下电脑BIOS COMS里的常用的单词和解释?
当启用(enable)本功能,则计算机开机时,BIOS的POST程序会去检测Floppy是否存在。否则,跳过此检测动作。 FloppyDiskAccessControl(软盘存取控制读\/取,默认值为R\/W) 本功能主要用来控制软盘的存取。当选取“ReadOnly”时,则只能由软盘读取数据,而无法将系统的数据拷贝至软盘中,当选取R\/W时,则软盘可正常读取数据。

...与at24c02编程上的区别和要注意些什么,程序的写法有那些不同,比如...
没什么太大的不同,AT24C02 读写时要指定地址 A2 A1 A0 ,这就是芯片上这3支管脚的接法,而 AT24C16 不用指定地址但是因为容量比较大因此要选定所要读写的页(PAGE)。

相似回答
大家正在搜