java编写Http服务器下载工具

这个工具比较简单,用于配合另外一个工具进行文件传送,废话少说,上代码

import java.net.URL;
import java.net.URLConnection;
import java.io.File;
import java.io.InputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.commons.io.FileUtils;

public class HttpUtil{
  private String httppath = "";

  public void setHttpPath(String httppath){
    this.httppath = httppath;
  }

  public String getHttpPath(){
    return this.httppath;
  }

  public HttpUtil(String httppath){
    this.httppath = httppath;
  }

  public InputStream getStream(String url){
    InputStream inStream = null;
    try{
      URL httpurl = new URL(url);
      URLConnection conn = httpurl.openConnection();
      inStream = conn.getInputStream();
    }catch (Exception e){
      e.printStackTrace();
      return null;
    }
    return inStream;
  }

  public int downLoad(String url,String localName ,int lines) throws FileNotFoundException, IOException{
    FileOutputStream fos = null;
    InputStream inStream = null;
    int ret = 0;
    try{
      URL httpurl = new URL(url);
      URLConnection conn = httpurl.openConnection();
      inStream = conn.getInputStream();
      fos = new FileOutputStream(localName);
      byte[] b = new byte[102400];
      int j = 0;
      while(inStream.read(b) != -1 && lines > 0){
        for(int i = j; i < b.length; i++){
          if(b[i] == '\n'){
            fos.write(b, j, i - j + 1);
            lines--;
            if(lines <= 0){
              break;
            }
            j = i + 1;
            continue;
          }
        }
      }
    }catch (Exception e){
      e.printStackTrace();
      ret = -1;
    }finally {
      fos.close();
      inStream.close();
      return ret;
    }
  }

  public static void main(String[] args){
    String httppath = "";
    int lines = 0;
    String localName = "";
    try{
      httppath = args[0];
      localName = args[1];
      lines = Integer.parseInt(args[2]);
    }catch (Exception e){
      e.printStackTrace();
      return;
    }
    try{
      HttpUtil hu = new HttpUtil(httppath);
      hu.downLoad(hu.getHttpPath(),localName ,lines);
    }catch (Exception e){
      e.printStackTrace();
    }
  }
}

这个工具实现了从HTTP服务器上下载指定行数的文件,并且不会因为编码的问题引起下载的文件内容乱码
三个工具已经搞定,下一次就是把这三个工具结合起来将HTTP、FTP的文件转移到HDFS上

hadoop工具
ftp工具

以上就是本文所述的全部内容了,希望大家能喜欢。

请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持!

(0)

相关推荐

  • java实现服务器文件打包zip并下载的示例(边打包边下载)

    使用该方法,可以即时打包文件,一边打包一边传输,不使用任何的缓存,让用户零等待! 复制代码 代码如下: /** *  * mySocket 客户端 Socket * @param file 待打包的文件夹或文件 * @param fileName 打包下载的文件名 * @throws IOException */ private void down(File file, String fileName) throws IOException { OutputStream outputStream

  • java实现从网上下载图片到本地的方法

    本文实例讲述了java实现从网上下载图片到本地的方法.分享给大家供大家参考.具体如下: import java.io.*; import java.net.MalformedURLException; import java.net.URL; public static void writeFile(String strUrl,String fileName){ URL url = null; try { url = new URL(strUrl); } catch (MalformedURLE

  • java实现socket从服务器连续获取消息的示例

    服务器端我们用软件模拟,是一个很小巧的软件,下载软件NetAssist:http://xiazai.jb51.net/201403/tools/NetAssist(jb51.net).rar 第二步贴上我们客户端的代码: 复制代码 代码如下: import java.io.DataInputStream; import java.io.IOException;import java.net.Socket; public class Client {      public static fina

  • Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法

    一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法.下载文件的通用方法以及删除文件.在ftp服务器上传文件夹.检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,Java FTP主文件代码: package ftpDemo; import java.io.DataOutputStream; import java.io.InputStream; import java.io.OutputStream; import sun.net

  • java网络编程之socket网络编程示例(服务器端/客户端)

    Java为TCP协议提供了两个类,分别在客户端编程和服务器端编程中使用它们.在应用程序开始通信之前,需要先创建一个连接,由客户端程序发起:而服务器端的程序需要一直监听着主机的特定端口号,等待客户端的连接.在客户端中我们只需要使用Socket实例,而服务端要同时处理ServerSocket实例和Socket实例;二者并且都使用OutputStream和InpuStream来发送和接收数据. 学习一种知识最好的方式就是使用它,通过前面的笔记,我们已经知道如何获取主机的地址信息,现在我们通过一个简单的

  • Java中常见的5种WEB服务器介绍

    Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问.开发Java Web应用所采用的服务器主要是与JSP/Servlet兼容的Web服务器,比较常用的有Tomcat.Resin.JBoss.WebSphere 和 WebLogic 等,下面将分别进行介绍. Tomcat 服务器 目前最为流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型.轻量级的支持JSP和Servlet 技术的Web服

  • Java通过FTP服务器上传下载文件的方法

    对于使用文件进行交换数据的应用来说,使用FTP 服务器是一个很不错的解决方案. 关于FileZilla Server服务器的详细搭建配置过程,详情请见FileZilla Server安装配置教程.之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲测上传2G的文件到FileZilla Server都没有该问题,朋友们可以放心使用该代码. FavFTPUtil.Java package com.favccxx.favsoft.util; import jav

  • JAVA技术实现上传下载文件到FTP服务器(完整)

    具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见 FileZilla Server安装配置教程 .之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲

  • Java如何从服务器中下载图片

    本文实例为大家分享了Java服务器中下载图片的方法,供大家参考,具体内容如下 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import org.apache.commons.io.IOUtils; /** * 从服务器中下载图片 * * @param fileName

  • java实现文件上传下载和图片压缩代码示例

    分享一个在项目中用的到文件上传下载和对图片的压缩,直接从项目中扒出来的:) 复制代码 代码如下: package com.eabax.plugin.yundada.utils; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.

随机推荐