黑马程序员技术交流社区

标题: IO操作文件中复制时的问题? [打印本页]

作者: 王新春    时间: 2011-11-15 13:16
标题: IO操作文件中复制时的问题?
本帖最后由 王新春 于 2011-11-22 16:51 编辑

当要把d:\\RuntimeDemo.java这个文件复制到c:\\RuntimeDemo_copy.java中的时候,那要是C盘下已经存在了一个RuntimeDemo_copy.java文件的时候,那么不想重新在创建这个文件了,也不想覆盖它,那么还能输出一个提示,该怎么做呢?

import java.io.*;
public class CopyText {
        public static void main(String[] args) throws Exception{
               
           copy_1();
        }
    public static void  copy_1()throws Exception
    {
            //创建目的地。
            FileWriter fw=new FileWriter("c:\\RuntimeDemo_copy.txt");
           
            //与已有文件关联。
            FileReader fr=new FileReader("d:\\RuntimeDemo.java");
            int ch=0;
            while((ch=fr.read())!=-1)
            {
                    fw.write(ch);
            }
            fw.close();
            fr.close();
    }
}
作者: 强子    时间: 2011-11-15 13:33
可以先判断RuntimeDemo_copy.java文件是否存在  
if存在{

else{

作者: 宋文轩    时间: 2011-11-15 13:56
本帖最后由 宋文轩 于 2011-11-15 15:24 编辑

FileWriter fw=new FileWriter("c:\\RuntimeDemo_copy.txt");
这句前面建立一个File对象 用File对象File file=new File(c:\\RuntimeDemo_copy.txt)    然后用file.exists()方法来判断这个文件是否存在了。如果存在了可以直接抛出RuntimeException("目标文件已经存在,请检查!")
然后改 写入流为  FileWritre fw=new FileWriter(file);就可以了。File这个类后面的视频会讲到的。
作者: 高双武    时间: 2011-11-15 17:09
package execisetest;

import java.io.*;
public class CopyText {
            private static FileWriter fw=null;
        public static void main(String[] args) throws Exception{              
           copy_1();
        }
    public static void  copy_1()throws Exception
    {
            //创建目的地。
            //如果存在则返回不存在则执行
                if(creatStream()==0){
            //与已有文件关联。
            FileReader fr=new FileReader("d:\\RuntimeDemo.java");
            int ch=0;
            
            while((ch=fr.read())!=-1)
           {
            fw.write(ch);
           }
            fw.close();
           fr.close();
    }
   
    else
            return;
   }
    public static int creatStream()throws IOException{
            String fileName="c:\\RuntimeDemo_copy.txt";
            File ff=new File(fileName);
            if(ff.exists()){
                    System.out.println(fileName+"文件已存在");
                    return 1;
            }
            else           
            fw=new FileWriter("c:\\RuntimeDemo_copy.txt");
            return 0;
    }        
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2