JAVA远程下载文件并读取实例方法

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

  1. **
  2. * 远程下载文件并读取返回p
  3. * @param filePath 文件网络地址 如http://www.baidu.com/1.txt
  4. * @return String
  5. */
  6. public String DownAndReadFile(String filePath){
  7. String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
  8. File savePath = new File("D://"+date);//创建新文件
  9. if (!savePath.exists()) {
  10. savePath.mkdir();
  11. }
  12. String[] urlname = filePath.split("/");
  13. int len = urlname.length-1;
  14. String uname = urlname[len];//获取文件名
  15. try {
  16. File file = new File(savePath+"//"+uname);//创建新文件
  17. if(file!=null && !file.exists()){
  18. file.createNewFile();
  19. }
  20. OutputStream oputstream = new FileOutputStream(file);
  21. URL url = new URL(filePath);
  22. HttpURLConnection uc = (HttpURLConnection) url.openConnection();
  23. uc.setDoInput(true);//设置是否要从 URL 连接读取数据,默认为true
  24. uc.connect();
  25. InputStream iputstream = uc.getInputStream();
  26. System.out.println("file size is:"+uc.getContentLength());//打印文件长度
  27. byte[] buffer = new byte[4*1024];
  28. int byteRead = -1;
  29. while((byteRead=(iputstream.read(buffer)))!= -1){
  30. oputstream.write(buffer, 0, byteRead);
  31. }
  32. oputstream.flush();
  33. iputstream.close();
  34. oputstream.close();
  35. //读取文件
  36. StringBuffer strb = new StringBuffer();
  37. FileInputStream fs = new FileInputStream(new File(savePath+"//"+uname));
  38. InputStreamReader isr = new InputStreamReader(fs,"UTF-8");
  39. BufferedReader br = new BufferedReader(isr);
  40. String data = "";
  41. while((data = br.readLine()) != null){
  42. strb.append(data + "\n");
  43. }
  44. br.close();
  45. fs.close();
  46. isr.close();
  47. System.out.println(strb.toString());
  48. return strb.toString();
  49. } catch (Exception e) {
  50. System.out.println("读取失败!");
  51. e.printStackTrace();
  52. }
  53. return null;
  54. }
时间: 2024-11-04 09:12:02

JAVA远程下载文件并读取实例方法的相关文章

最新---java多线程下载文件

import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.URL; public class Demo { // 定义线程个数 public static int threadCount = 5; public static void main(String[] args) throws Exception { // 1,连接到服务

PHP CURL实现远程下载文件到本地

<?php //$result=httpcopy('http://www.phpernote.com/image/logo.gif'); echo '<pre>';print_r($result); function httpcopy($url,$file='',$timeout=60){ $file=empty($file)?pathinfo($url,PATHINFO_BASENAME):$file; $dir=pathinfo($file,PATHINFO_DIRNAME); !i

linux远程下载文件 的两种方法之 ftp命令和scp命令

ftp命令: 服务器有安装ftp Server,另外一台linux可以使用ftp的client程序来进行文件的拷贝读取和下载. 1. 连接ftp服务器  格式:ftp [hostname| ip-address] a)在linux命令行下输入:ftp 192.168.26.66 b)服务器询问你用户名和口令,分别输入用户名和相应密码,待认证通过即可. 2. 下载文件 下载文件通常用get和mget这两条命令. a) get  格式:get [remote-file] [local-file] 将

Java FTP下载文件以及编码问题小结

问题 之前在开发过程中,遇到了一点问题,我要访问一个FTP服务器去下载文件详细情况如下: 1. 需要传入一个可能为中文的文件名: 2. 通过文件名去FTP上寻找该文件: 3. FTP服务器的命名编码为“GBK”: 思路 1.通过GET方法直接将文件名负载URL后面,但需要通过转码: 2.在Java Controller中收到参数后,进行解码,解码为正常数据: 3.用正常数据再转码为GBK,到Service中去调用FTP即可 4.(因公司安全考虑,我们需要在另一个模块中调用FTP)通过rest接口

Linux远程下载文件的两种方法之 ftp命令和scp命令

ftp命令: 服务器有安装ftp Server,另外一台linux可以使用ftp的client程序来进行文件的拷贝读取和下载. 1. 连接ftp服务器  格式:ftp [hostname| ip-address] a)在linux命令行下输入:ftp 192.168.26.66 b)服务器询问你用户名和口令,分别输入用户名和相应密码,待认证通过即可. 2. 下载文件 下载文件通常用get和mget这两条命令. a) get  格式:get [remote-file] [local-file] 将

JAVA 实现下载文件到本地库

1 /** 2 * TODO 下载文件到本地 3 * @author nadim 4 * @date Sep 11, 2015 11:45:31 AM 5 * @param fileUrl 远程地址 6 * @param fileLocal 本地路径 7 * @throws Exception 8 */ 9 public void downloadFile(String fileUrl,String fileLocal) throws Exception { 10 URL url = new U

java多线程下载文件和断点下载

多线程,断点下载文件 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile;

android命令模式IntentService 远程下载文件

服务可用在一下情景: 1,用户离开activity后,仍需要继续工作,例如从网络下载文件,播放音乐. 2,无论activity出现或离开,都需要持续工作,例如网络聊天应用. 3,连接网络服务,正在使用一个远程API提供的服务. 4,定时触发的任务 1.因为IntentService是Service子类,所以也需要在manifest中声明服务 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns

Java数据存入文件和读取文件

在Java程序开发过程中我们发现并不能够让程序多次运行时获得上一次关闭程序前的运行结果--我们没有将运行的结果加以保存.这个时候我们就要找到Java操作读取数据的方法(以操作文件为例):Java中的输入/输出模型,I/O模型又称为I/O流.(以下简称I/O流). 流按方向可以分为输入(input)和输出(output)2种.输入和输出是相对的,这里我们是站在程序的角度来看的,将程序的数据写到文件就是输出,从文件中读取数据就是输入. 按类型(大小)可以分为字节型(byte)和字符型(byte)2种