远程采集文件

原创 2006年06月05日 10:27:00

import java.io.*;
import java.net.HttpURLConnection;

/**
 * 网络文件存取类
 *
 * @author GamVan by 我容易么我
 */

public class FileOperate {

    public FileOperate() {

    }

    /**
     * 如果远程文件读取失败用此文件替代
     */

    public String readerr = "";


    /**
     * 收集运行哪个结果或错误信息
     */

    public String message = "";


    /**
     * 根据文件url地址采集并创建到本地
     *
     * @param fileUrl         文件url路径
     * @param filePathAndName 预创建到本地的文件的绝对路径含文件名已经扩展名
     * @return
     * @throws IOException 2006-1-17 4:48:06 made in GamVan
     */

    public boolean createFile(String fileUrl, String filePathAndName) throws IOException

    {

        boolean bea = false;

        java.net.URL urlfile = null;

        HttpURLConnection httpUrl = null;

        BufferedInputStream bis = null;

        BufferedOutputStream bos = null;

        File f = new File(filePathAndName);

        try {

//连接指定的网络资源,获取网络输入流

            urlfile = new java.net.URL(fileUrl);

            httpUrl = (HttpURLConnection) urlfile.openConnection();

            httpUrl.connect();

            bis = new BufferedInputStream(httpUrl.getInputStream());

        } catch (Exception e) {

            if (readerr != null && !readerr.equals("")) {

                try {

                    urlfile = new java.net.URL(readerr);

                    httpUrl = (HttpURLConnection) urlfile.openConnection();

                    httpUrl.connect();

                    bis = new BufferedInputStream(httpUrl.getInputStream());

                } catch (Exception e1) {

                    message = e1.toString();

                }

            }

            message = e.toString();

        }

        try {

            bos =

                    new BufferedOutputStream(new FileOutputStream(f));
            ;

            byte[] b = new byte[1024];

            while (bis.read(b) != -1)

            {

                bos.write(b);

            }

            bea = true;

            message = fileUrl + " 采集成功!文件已存储至:" + filePathAndName;

        } catch (Exception e) {

            bea = false;

            message = e.toString();

        } finally {

            try {

                bos.flush();

                bis.close();

                httpUrl.disconnect();

            } catch (Exception e) {

                message = e.toString();

            }

        }

        return bea;

    }

    public void setReaderr(String readerr) {

        this.readerr = readerr;

    }

    public String getMessage() {

        return this.message;

    }

/* test */

    public static void main(String args[]) {

//远程文件路径

        String s1 = "http://club.gamvan.com/club/GVimgs/mainLogo.gif";

//本地存放路径

        String s2 = "E://MYJAVA//1.jpg";

        try {

            FileOperate fo = new FileOperate();

            fo.setReaderr("http://club.gamvan.com/club/GVimgs/mainLogo.gif");

            fo.createFile(s1, s2);

            System.out.println(fo.getMessage());

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

使用Flume收集数据

Flume进程的配置包含三个部件:信源、信宿和信道。Flume还提供了一个自定义信源、信道和信宿的接口。 信源在接收到足够数据可以生成一个Flume事件时,它会把新创建的事件发给信道,但如何处理事件却...
  • u012135300
  • u012135300
  • 2016年05月05日 09:48
  • 2513

任意文本日志配置远程Syslog采集

基本上所有的操作系统、应用程序产生的日志,都是记录在本地文件内,因此如果能解决任意文本的日志转syslog发送,几乎解决了所有常规和非常规的日志发送问题。 本文将指引你:如何对任意文本内的日志进行采...
  • leizi191110211
  • leizi191110211
  • 2016年06月06日 10:33
  • 3464

用Flume采集多台机器上的多种日志并存储于HDFS

需求:把A、B 机器中的access.log、ugcheader.log、ugctail.log 汇总到C机器上然后统一收集到hdfs中。 IP: A:155 B:156 C:162 但是在h...
  • Anonymous_cx
  • Anonymous_cx
  • 2016年07月02日 14:57
  • 2671

Linux服务器使用kettle进行数据采集及入库

1,安装JDK环境,这里不多说 2,新建kettle目录,下载压缩包,这里用的是pdi-ce-7.1.0.0-12.zip 3,解压,unzip pdi-ce-7.1.0.0-12.zip ...
  • wsbgmofo
  • wsbgmofo
  • 2017年12月21日 10:06
  • 183

Java网页数据采集器[续篇-远程操作]

本期概述 上期我们学习了html页面采集后的数据查询, 但这仅仅是在本地查询数据库,如果我们想通过远程操作来进行数据的采集,存储和查询,那又该怎么做呢? 今天我们一起来学习下:如何通过本地客户端远...
  • huaishuming
  • huaishuming
  • 2014年08月17日 19:32
  • 1003

Flume实时抽取监控目录数据

什么是flumeFlume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。它是一个基于流数据的简单而灵活的架构。具有健壮的可靠性,容错性及故障转移和恢复机制。flume原理简介(博客...
  • lm709409753
  • lm709409753
  • 2016年12月25日 19:31
  • 2422

使用flume+hive采集Web服务器的access日志

1、配置服务器格式 博主这里用的是tomcat的combined默认格式,格式如下 127.0.0.1 - - [28/Mar/2017:09:23:10 +0800] "GET /manag...
  • shuyun123456789
  • shuyun123456789
  • 2017年11月29日 14:07
  • 173

php保存文章中远程图片到本地

php保存远程图片到本地,php正则匹配文章中的图片地址
  • u010349417
  • u010349417
  • 2013年12月04日 14:16
  • 790

【原创】c#如何实现RTU远程数据采集功能及RTU在水利工程中的运用

好久没有动手去写博客了,近两年时间忙碌着工作,未曾回过头细数做过的路程,感觉有点思想颓废了,之前一直从事的水利工程类开发及实施工作,考虑各方面情况下,从11年开始转行投入到电力智能电网的软件开发工作,...
  • pan869823184
  • pan869823184
  • 2013年06月23日 19:53
  • 8663

基于opc架构的数据采集系统及应用

随着计算机通信和网络技术的发展,计算机在工业自动化领域发挥着越来越重要的作用。在工业现场,通常会采用各种智能仪器仪表,这些智能设备的现场运行数据可以通过网络直接高速地采集到应用软件,从而将设备的运行状...
  • huwei2003
  • huwei2003
  • 2014年06月30日 18:34
  • 5523
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:远程采集文件
举报原因:
原因补充:

(最多只允许输入30个字)