A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高志鹏 中级黑马   /  2012-11-14 21:15  /  1517 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高志鹏 于 2012-11-14 22:04 编辑

毕老师的代码:
  1. FileWriter fw = new FileWriter("RuntimeDemo_copy.txt");
  2. FileReader fr = new FileReader("RuntimeDemo.java");
  3. int ch = 0;
  4. while((ch=fr.read())!=-1){  // fw.write(ch)}
复制代码
用注释注解的那一步,这是copy的第一种方法,是读一个字符,写一个字符,那这样的话,在读取了第一个字符后,再读取再写入,那应该就算是续写,但是毕老师却没有在后面加true而且也能够将整篇都读写出来。
不明白的地方就是:为什么不是续写也能够将整篇都写出。按理不应该只有一个字母么。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
while((ch=fr.read())!=-1){  // fw.write(ch)} 这是在一个程序里面进行的循环。会一直进行判断,没有到达结尾,就会一直写入。而你想表达的那种应该是重写文件吧?那种情况是一个main函数执行完毕,又执行了一次的话,就把整个文件给替换掉。
回复 使用道具 举报
1.在创建FileWriter对象时,该对象一被初始化就必须要明确被操作的文件。
如果该文件不存,在则会在指定目录下创建一个,如果指定的文件已经存在,
则会重新创建一个,对原有的进行覆盖。
2.如果原有文件已经存在,在创建FileWriter对象时不想对其进行覆盖,而是
要对其进行续写,此时需要用true来标示。
3.你所说的是对同一个文件进行循环写入,就像是写入字符串一样,只不过
这是一个接着一个字符的写入。
回复 使用道具 举报
刘菲 发表于 2012-11-14 21:56
1.在创建FileWriter对象时,该对象一被初始化就必须要明确被操作的文件。
如果该文件不存,在则会在指定目 ...

是需要将流关掉后再开就算续写了,谢谢哈!
回复 使用道具 举报
张学永 发表于 2012-11-14 21:27
while((ch=fr.read())!=-1){  // fw.write(ch)} 这是在一个程序里面进行的循环。会一直进行判断,没有到达 ...

是需要将流关掉后再开就算续写了,谢谢哈!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马