Java编程___File各类方法使用(实现拷贝特定文件至特定目录下)

来源:互联网 发布:制作歌词软件下载 编辑:程序博客网 时间:2024/05/28 16:04
实现目标:将 <span style="font-family: Arial, Helvetica, sans-serif;">"/larbin.conf", "/options.h", "/types.h" 三个特定目录下的文件Copy到新建目录(此目录根据传参url来新建)。</span>
<span style="font-family: Arial, Helvetica, sans-serif;">例如:</span>
<span style="font-family: Arial, Helvetica, sans-serif;">url="www.zju.edu.cn"那么新建的目录为 D:/Crawler/Home/</span><span style="font-family: Arial, Helvetica, sans-serif;">www.zju.edu.cn,三个文件Copy至该目录下</span>
</pre><pre name="code" class="java">实现方法:
</pre><pre name="code" class="java">public void copyLarbinToCatalog(String url) throws IOException{InputStream in;OutputStream out;String dir_module ="D:/Crawler/LarbinModule";        String dir_home_url ="D:/Crawler/Home/"+url;                byte[] inFile;        File outFile;                String[] arr_fileNames = { "/larbin.conf", "/options.h", "/types.h" };        outFile = new File(dir_home_url);if (!outFile.isDirectory()) {System.out.println("//路径不存在");outFile.mkdirs();//mkdir() //只能在已经存在的目录中创建创建文件夹。 //mkdirs() //可以在不存在的目录中创建文件夹。诸如:a\\b,既可以创建多级目录。System.out.println("//路径已经被创建");} else {System.out.println("//路径存在");}for (int i = 0; i < arr_fileNames.length; i++) {outFile = new File(dir_home_url + arr_fileNames[i]);if (!outFile.exists()) {System.out.println("//文件不存在");outFile.createNewFile();System.out.println("//"+dir_home_url + arr_fileNames[i]+"文件已被新创建");} else {System.out.println("//文件存在");}in = new FileInputStream(dir_module + arr_fileNames[i]);inFile = new byte[in.available()];in.read(inFile);out = new FileOutputStream(dir_home_url + arr_fileNames[i]);out.write(inFile);if("/larbin.conf".equals(arr_fileNames[i])){this.changeStartURLandlimitToDomainByIterator(outFile, url);}in.close();out.close();}}public void changeStartURLandlimitToDomainByIterator(File file,String url) throws IOException{FileReader     in = new FileReader(file);BufferedReader br = new BufferedReader(in);String line =null;while((line=br.readLine()) != null){       if(line.startsWith("startUrl")){       System.out.println("找到startUrl行了          :"+line);       line="startUrl http://"+url;       System.out.println("修改startUrl成功          :"+line);       System.out.println("_____________________________________________________");       }       else if(line.startsWith("limitToDomain")){       System.out.println("找到limitToDomain行了:"+line);       line ="limitToDomain";       String[] domains =url.split("//.");//注意必须转义       for(int i=1 ;i<domains.length;i++){       domains[i]=" ."+domains[i];       line =line+domains[i];       System.out.println(line);       }       line=line +" end";       System.out.println("修改limitToDomain成功:"+line);       System.out.println("_____________________________________________________");       break;       }}System.out.println("完成文件行遍历。。。。。。。。。。。。。。");in.close();br.close();}

0 0