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

实现目标:将 <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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值