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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 孙峰 于 2012-6-10 19:44 编辑

public static void method_1() throws IOException
{                                                                                        //老毕的例子,将一个文件复制到另一个地方,      
        FileWriter fw=new FileWriter("e:\\sun\\eng0.txt");//    在这里重复写入新文件中,为什么不用这么定义了 new FileWriter("e:\\sun\\eng0.txt",true),?
         FileReader fr=new FileReader("d:\\eng0.txt");
       int ch=0;
           while((ch=fr.read())!=-1)
      {
                    fw.write(ch);
       }
                   fw.close();
                   fr.close();
}

6 个回复

倒序浏览
这个随你自己怎么写吧,就是给原文件追加到末尾而已,测试程序由你自己决定。
回复 使用道具 举报
new FileWriter("e:\\sun\\eng0.txt",true)、、ture代表不覆盖已有文件,并在已有文件末尾处续写
而复制文件FileWriter fw=new FileWriter("e:\\sun\\eng0.txt");
         FileReader fr=new FileReader("d:\\eng0.txt");
这里是创建一个eng0.txt文件
回复 使用道具 举报
FileWriter
public FileWriter(File file,
                  boolean append)
           throws IOException在给出 File 对象的情况下构造一个 FileWriter 对象。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。

参数:
file - 要写入数据的 File 对象
append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
抛出:
IOException - 如果该文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它
从以下版本开始:
1.4

--------------------------------------------------------------------------------
回复 使用道具 举报
陈嘉宾 发表于 2012-6-10 19:19
new FileWriter("e:\\sun\\eng0.txt",true)、、ture代表不覆盖已有文件,并在已有文件末尾处续写
而复制文 ...

我的意思是说:后面while循环不是重复写入了吗
回复 使用道具 举报
FileWriter fw=new FileWriter("e:\\sun\\eng0.txt");   //每次运行都写入数据,如果该文件将被覆盖
FileWriter fw1 =  new FileWriter("e:\\sun\\eng0.txt",true);//在给定文件名情况下,如果第二个参数传入的值为true,则将数据写入文件末尾处,而不是写入文件开始处。 falas则不写入
回复 使用道具 举报

FileWriter 有几个构造方法,毕老师用的是
FileWriter(File file)
          根据给定的 File 对象构造一个 FileWriter 对象。
你所说的是:
FileWriter(File file, boolean append)
          根据给定的 File 对象构造一个 FileWriter 对象。
其实都是构造方法。如果那文件不存在,效果都一样。
如果那文件存在,毕老师用的那种方式将会覆盖原来存在的。
而你说的会追加到原来的那个文件结尾处。
我觉得老毕的更好些,毕竟是复制文件,所以还是一模一样好。你可以改改你的代码,先判断下文件是否存在。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马