`
phantom
  • 浏览: 163236 次
社区版块
存档分类
最新评论

java下载网络文件WGet代码

阅读更多
写道
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;

public class WGet {
public static void main(String args[]) throws IOException{
String str=getText("http://bbs.jinghua.cn/viewthread.php?tid=52723&extra=page%3D1","GBK");
System.out.println(str);
}
private static void setConn(HttpURLConnection httpUrl) {
httpUrl.setRequestProperty(
"User-agent",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11");
httpUrl.setRequestProperty("User-agent", "Mozilla/4.0");
httpUrl.setRequestProperty(
"Accept",
"text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
httpUrl.setRequestProperty("Accept-Language", "zh-cn,zh;q=0.5");
httpUrl.setRequestProperty("Accept-Charset",
"gb2312,utf-8;q=0.7,*;q=0.7");
httpUrl.setRequestProperty("Accept-Language", "zh-cn,zh;q=0.5");
httpUrl.setRequestProperty("Keep-Alive", "300");
httpUrl.setRequestProperty("Connection", "keep-alive");
}

public static void writeFile(String txt, String path, String code) {
java.io.File f = new java.io.File(path);

f.getParentFile().mkdirs();
OutputStreamWriter out = null;
try {
out = new OutputStreamWriter(new FileOutputStream(path), code);
out.write(txt);
out.flush();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {

e.printStackTrace();
}
}

}

public static boolean testUrl(String destUrl) throws IOException {
System.out.println("testUrlText@=" + destUrl);
boolean flag = true;
HttpURLConnection httpUrl = null;
try {

java.io.ByteArrayOutputStream bout = new java.io.ByteArrayOutputStream();
BufferedInputStream bis = null;
URL url = null;
byte[] buf = new byte[4096];
int size = 0;
url = new URL(destUrl);
httpUrl = (HttpURLConnection) url.openConnection();
setConn(httpUrl);
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());
while ((size = bis.read(buf)) != -1)
bout.write(buf, 0, size);
bout.flush();
bout.close();
bis.close();
} catch (Exception e) {
return false;
} finally {
httpUrl.disconnect();
}
return flag;
}


public static void main2(String args[]) throws Exception {
File f1 = new File(
"D:/workDir/2009_0619/epaperAd/src/cn/jh/core/util/JHPage.java");
File f2 = new File(
"Y:/wwwroot/ftp/site1/jhsb/html/2009-08/29/content_456074.htm");
fileCopy(f1, f2);
}

public static long fileCopy(File f1, File f2) throws Exception {
long time = new Date().getTime();
f2.getParentFile().mkdirs();
int length = 2097152;
FileInputStream in = new FileInputStream(f1);
FileOutputStream out = new FileOutputStream(f2);
byte[] buffer = new byte[length];
while (true) {
int ins = in.read(buffer);
if (ins == -1) {
in.close();
out.flush();
out.close();
return new Date().getTime() - time;
} else
out.write(buffer, 0, ins);
}
}

public static String getText(String destUrl, String code)
throws IOException {

String str = null;
HttpURLConnection httpUrl = null;

try {
java.io.ByteArrayOutputStream bout = new java.io.ByteArrayOutputStream();
BufferedInputStream bis = null;

URL url = null;
byte[] buf = new byte[4096];
int size = 0;
url = new URL(destUrl);
httpUrl = (HttpURLConnection) url.openConnection();
setConn(httpUrl);
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());
while ((size = bis.read(buf)) != -1)
bout.write(buf, 0, size);
bout.flush();
bout.close();
str = new String(bout.toByteArray(), code);
bis.close();

} catch (Exception e) {

return "";
} finally {
httpUrl.disconnect();
}
return str;
}

static public void wget(String destUrl, String baseStr,
String basePath) throws Exception {
FileOutputStream fos = null;
BufferedInputStream bis = null;
HttpURLConnection httpUrl = null;
URL url = null;
int BUFFER_SIZE = 4096;

byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
try {
System.out.println("baseStr=" + baseStr);
if (destUrl.indexOf(baseStr) < 0)
return;
String file = basePath
+ destUrl.substring(destUrl.indexOf("jinghua.cn")
+ "jinghua.cn".length());
String dir = file.substring(0, file.lastIndexOf("/"));
File f = new File(dir);
f.mkdirs();

url = new URL(destUrl.replace(baseStr,
"http://www.yesky.com/imagelist/"));
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());

fos = new FileOutputStream(file);
while ((size = bis.read(buf)) != -1) {
fos.write(buf, 0, size);
}
fos.flush();
System.out.println("save " + file);
} finally {
try {
fos.close();
bis.close();
httpUrl.disconnect();
} catch (IOException e) {
} catch (NullPointerException e) {
}
}
}

static public void saveToFile(String destUrl, String baseStr,
String basePath) throws Exception {
FileOutputStream fos = null;
BufferedInputStream bis = null;
HttpURLConnection httpUrl = null;
URL url = null;
int BUFFER_SIZE = 4096;

byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
try {
System.out.println("baseStr=" + baseStr);
if (destUrl.indexOf(baseStr) < 0)
return;
String file = basePath
+ destUrl.substring(destUrl.indexOf("jinghua.cn")
+ "jinghua.cn".length());
String dir = file.substring(0, file.lastIndexOf("/"));
File f = new File(dir);
f.mkdirs();

url = new URL(destUrl.replace(baseStr,
"http://himg1.huanqiu.com/attachment/"));
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());

fos = new FileOutputStream(file);
while ((size = bis.read(buf)) != -1) {
fos.write(buf, 0, size);
}
fos.flush();
System.out.println("save " + file);
} finally {
try {
fos.close();
bis.close();
httpUrl.disconnect();
} catch (IOException e) {
} catch (NullPointerException e) {
}
}
}
/**
* 将HTTP资源另存为文件
*
* @param destUrl
* String
* @param fileName
* String
* @throws Exception
*/
static public void wget(String destUrl, String fileName) throws IOException {
FileOutputStream fos = null;
BufferedInputStream bis = null;
HttpURLConnection httpUrl = null;
URL url = null;
int BUFFER_SIZE=4096;
byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
File f=new File(fileName);
f.getParentFile().mkdirs();
// 建立链接
url = new URL(destUrl);
httpUrl = (HttpURLConnection) url.openConnection();
// 连接指定的资源
httpUrl.connect();
// 获取网络输入流
bis = new BufferedInputStream(httpUrl.getInputStream());
// 建立文件
fos = new FileOutputStream(fileName);

// 保存文件
while ((size = bis.read(buf)) != -1)
fos.write(buf, 0, size);

fos.close();
bis.close();
httpUrl.disconnect();
}
static public void click(String destUrl, String path) throws Exception {

BufferedInputStream bis = null;
HttpURLConnection httpUrl = null;
URL url = null;
int BUFFER_SIZE = 4096;

byte[] buf = new byte[BUFFER_SIZE];

try {

System.out.println("wget=" + destUrl);
url = new URL(destUrl);
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());

while ((bis.read(buf)) != -1) {

}

} finally {
try {

bis.close();
httpUrl.disconnect();
} catch (IOException e) {
} catch (NullPointerException e) {
}
}
}
}

 

分享到:
评论

相关推荐

    页面抓取工具wget-1.11.4b.zip

    而"zip"则表示这是一个压缩文件,通常包含wget的源代码、编译好的二进制文件或相关的依赖库。 **wget的特性** 1. **非交互式操作**:wget可以在后台运行,无需用户持续监控,非常适合在无人值守的情况下执行下载...

    安卓下利用ndk编译wget项目

    在Android环境下,使用wget可以帮助我们实现后台下载,尤其适用于大文件和需要断点续传的场景。 要将wget移植到Android,我们需要做以下几步: 1. **获取源代码**:首先,你需要从wget的官方网站或其他可靠的源...

    mysql-connector-java-5.1.49.tar.gz

    通过使用MySQL的JDBC驱动,Java开发者无需关心底层数据库的具体实现,只需编写符合JDBC规范的代码,就能在Java程序中执行SQL语句,进行数据的增删改查等操作。 `mysql-connector-java-5.1.49`是这个驱动的特定版本...

    java 文档开发手册指南

    《Java文档开发手册指南》是针对Android开发人员的一份详细指南,旨在帮助开发者更好地理解和创建高质量的API文档。本文档不仅适用于Java编程语言,还特别关注在Android平台上的应用。以下将详细介绍其中涉及的主要...

    下载服务器文件到本地,并删除已下载的服务器文件

    脚本中应包含下载文件的逻辑,以及下载成功后的清理代码。 6. **定时任务**:在描述中提到了"TimerCleanLog",这可能是指定时清理日志文件的功能。可以使用cron(Linux)或Task Scheduler(Windows)设置定时任务,...

    mysql-connector-java-5.1.48.tar.gz

    "mysql-connector-java-5.1.48.tar.gz" 文件是这个驱动程序的一个版本,具体为5.1.48版。 在MySQL Connector/J 5.1.48中,包含了多个关键组件和功能: 1. JDBC驱动程序:这是核心组件,提供了与MySQL服务器通信所...

    wget使用方法

    压缩包中的Java源代码文件(TestInner.java等)看起来与wget主题无关,它们可能是某种软件项目的一部分,涉及Java编程,比如测试类。这些文件可能包含了各种测试用例,用于验证GUI(图形用户界面)组件的行为,例如...

    fastDFS linux安装及java代码

    FastDFS是一个开源的高性能、轻量级的分布式文件系统,它对文件进行管理,包括文件存储、文件同步、文件访问(文件上传、文件下载)等功能,解决了大容量存储和负载均衡的问题。在Linux环境下安装FastDFS,首先我们...

    Java 6 API 简体中文版

    在描述中提到,JavaTM 2 Platform Standard Edition 6 (Java SE 6) API规范的简体中文版是一个完整的文档集合,通过wget从官方网站下载,解压后的大小约为200MB。这意味着它包含了大量的信息,覆盖了Java 6的所有...

    详解如何热更新线上的Java服务器代码

    5. 通过内存编译将Java文件编译成Class文件 6. 将class文件进行热更新 热更新的限制 热更新技术也存在一些限制,例如: 1. 不能增加或删除field/method 2. 没有退出的函数不能生效 结语 热更新技术可以极大地...

    mysql-connector-java-8.0.19.zip驱动下载window和liux

    1. 解压下载的`mysql-connector-java-8.0.19.zip`文件,通常包含一个名为`mysql-connector-java-8.0.19.jar`的JDBC驱动文件。 2. 将`.jar`文件添加到Java的类路径(ClassPath)中。在Windows中,可以在环境变量`...

    jdk11.0.13资源.zip

    例如,bin目录下的`javac`用于编译Java源代码,`java`用于执行Java应用程序,`jar`用于创建和管理Java归档文件,而jmods目录则包含Java模块系统的元数据。 总的来说,"jdk11.0.13资源.zip"是一个对Mac用户非常有...

    redis安装教程和java操作服务器端demo

    一般可以通过`wget`命令下载,例如: ``` wget http://download.redis.io/releases/redis-6.x.x.tar.gz ``` 2. **解压源码** 使用`tar`命令解压下载的源码包: ``` tar -zxvf redis-6.x.x.tar.gz ``` 3....

    eclipse-java-2022-03-R-linux-gtk-x86_64.tar.gz

    解压下载的tar.gz文件后,将其移动到适当的位置,如/home/用户名/Downloads或/opt,然后通过终端导航到解压后的目录并执行./eclipse来启动IDE。用户可以根据自己的需求自定义工作区,导入或创建新的Java项目,开始...

    Java8JDK开发环境

    - 使用`curl`或`wget`命令从Oracle官网下载JDK 8的tar.gz文件。 - 解压文件到合适目录,例如`/usr/lib/java`。 - 使用`sudo update-alternatives`命令设置默认JDK版本,并更新环境变量。 接下来,我们讨论Java 8...

    jdk-8u341-linux-x64.tar.gz

    3. **Java编译器(javac)**: 这是将源代码编译成字节码的工具,使得Java源文件(`.java`)可以转换为可执行的`.class`文件。 4. **Java文档生成器(javadoc)**: 用于从源代码中提取注释并生成HTML格式的文档,...

    linux-jdk1.8版本

    4. **开发工具**:如jar工具、javadoc工具、jconsole等,帮助开发者打包、文档化和监控Java应用。 在Linux环境中,JDK1.8.0_151是一个重要的版本,它包含了许多优化和新特性,比如Lambda表达式、Stream API、新的...

    linux环境下成功编译的GDAL JAVA库

    接下来,我们需要下载GDAL的源代码。GDAL的最新版本可以从其官方网站获取,或者使用wget命令下载: ```bash wget https://download.osgeo.org/gdal/3.x/gdal-3.x.y.tar.gz tar -zxvf gdal-3.x.y.tar.gz cd gdal-3.x...

    文件的分割下载

    5. **工具应用**:除了手动编码,还可以利用现有的工具实现文件分割下载,比如wget、aria2等开源下载工具,它们内置了断点续传和多线程下载功能。这些工具的使用可以大大简化开发过程,但可能需要理解其配置和API...

    maven 3.8.5 linux版本下载

    ** Maven 3.8.5 for Linux:Java项目构建利器** Maven,作为Apache软件基金会的一个项目,是Java开发中的核心构建工具。它通过提供一套标准化的构建过程,简化了项目的构建、管理和依赖管理。Maven 3.8.5是这个系列...

Global site tag (gtag.js) - Google Analytics