[Java]远程下载文件并读取实例方法

简单的文件下载后读取显示,该方法可返回内容的结果集。一般适用于文本文档的下载,以供学习交流。


/**
    * 远程下载文件并读取返回p
    * @param filePath 文件网络地址 如http://www.baidu.com/1.txt
    * @return String
    */
   public String DownAndReadFile(String filePath){
	   String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());	   
	   File savePath = new File("D://"+date);//创建新文件
	   if (!savePath.exists()) { 
		   savePath.mkdir(); 
       }
	   String[] urlname = filePath.split("/");
	   int len = urlname.length-1;
	   String uname = urlname[len];//获取文件名
	   try {
		   File file = new File(savePath+"//"+uname);//创建新文件
		   if(file!=null && !file.exists()){
			   file.createNewFile();
		   }
		   OutputStream oputstream = new FileOutputStream(file);
		   URL url = new URL(filePath);
		   HttpURLConnection uc = (HttpURLConnection) url.openConnection();
		   uc.setDoInput(true);//设置是否要从 URL 连接读取数据,默认为true
		   uc.connect();
		   InputStream iputstream = uc.getInputStream();
		   System.out.println("file size is:"+uc.getContentLength());//打印文件长度
		   byte[] buffer = new byte[4*1024];
		   int byteRead = -1;	
		   while((byteRead=(iputstream.read(buffer)))!= -1){
			   oputstream.write(buffer, 0, byteRead);
		   }
		   oputstream.flush();	
		   iputstream.close();
		   oputstream.close();
		   //读取文件
		   StringBuffer strb = new StringBuffer();
		   FileInputStream fs = new FileInputStream(new File(savePath+"//"+uname));
		   InputStreamReader isr = new InputStreamReader(fs,"UTF-8");
		   BufferedReader br = new BufferedReader(isr);
		   String data = "";
		   while((data = br.readLine()) != null){
			   strb.append(data + "\n");
		   }
		   br.close();
		   fs.close();
		   isr.close();
		   System.out.println(strb.toString());
		   return strb.toString();
		   
	} catch (Exception e) {
		System.out.println("读取失败!");
		e.printStackTrace();
	}   
	   return null;
   }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值