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

来源:互联网 发布:大隈机械okuma编程 编辑:程序博客网 时间:2024/05/19 13:18

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


/**    * 远程下载文件并读取返回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;   }


原创粉丝点击