一、GetURL.java
import java.io.*;
import java.net.*;
public class GetURL {
public static void main(String[] args) {
InputStream in = null;
OutputStream out = null;
try {
// 检查命令行参数
if ((args.length != 1)&& (args.length != 2))
throw new IllegalArgumentException("Wrong number of args");
URL url = new URL(args[0]); //创建 URL
in = url.openStream(); // 打开到这个URL的流
if (args.length == 2) // 创建一个适当的输出流
out = new FileOutputStream(args[1]);
else out = System.out;
// 复制字节到输出流
byte[] buffer = new byte[4096];
int bytes_read;
while((bytes_read = in.read(buffer)) != -1)
out.write(buffer, 0, bytes_read);
}
catch (Exception e) {
System.err.println(e);
System.err.println("Usage: java GetURL <URL> [<filename>]");
}
finally { //无论如何都要关闭流
try { in.close(); out.close(); } catch (Exception e) {}
}
}
}
运行方法:
C:\java>java GetURL http://127.0.0.1:8080/kj/index.html index.html
二、geturl.jsp
<%@ page import="java.io.*" contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="java.net.*"%>
<%
String htmpath=null;
BufferedReader in = null;
InputStreamReader isr = null;
InputStream is = null;
PrintWriter pw=null;
HttpURLConnection huc = null;
try{
htmpath=getServletContext().getRealPath("/")+"html\\morejava.html";
pw=new PrintWriter(htmpath);
URL url = new URL("http://127.0.0.1:8080/kj/morejava.jsp"); //创建 URL
huc = (HttpURLConnection)url.openConnection();
is = huc.getInputStream();
isr = new InputStreamReader(is);
in = new BufferedReader(isr);
String line = null;
while(((line = in.readLine()) != null)) {
if(line.length()==0)
continue;
pw.println(line);
}
}
catch (Exception e) {
System.err.println(e);
}
finally { //无论如何都要关闭流
try { is.close(); isr.close();in.close();huc.disconnect();pw.close();
} catch (Exception e) {}
}
%>
OK--,创建文件成功
三、HttpClient.java
import java.io.*;
import java.net.*;
public class HttpClient {
public static void main(String[] args) {
try {
// 检查命令行参数
if ((args.length != 1) && (args.length != 2))
throw new IllegalArgumentException("Wrong number of args");
OutputStream to_file;
if (args.length == 2)
to_file = new FileOutputStream(args[1]);//输出到文件
else
to_file = System.out;//输出到控制台
URL url = new URL(args[0]);
String protocol = url.getProtocol();
if (!protocol.equals("http"))
throw new IllegalArgumentException("Must use 'http:' protocol");
String host = url.getHost();
int port = url.getPort();
if (port == -1) port = 80;
String filename = url.getFile();
Socket socket = new Socket(host, port);//打开一个socket连接
InputStream from_server = socket.getInputStream();//获取输入流
PrintWriter to_server = new PrintWriter(socket.getOutputStream());//获取输出流
to_server.print("GET " + filename + "\n\n");//请求服务器上的文件
to_server.flush(); // Send it right now!
byte[] buffer = new byte[4096];
int bytes_read;
//读服务器上的响应,并写入文件。
while((bytes_read = from_server.read(buffer)) != -1)
to_file.write(buffer, 0, bytes_read);
socket.close();
to_file.close();
}
catch (Exception e) {
System.err.println(e);
System.err.println("Usage: java HttpClient <URL> [<filename>]");
}
}
}
运行方法:C:\java>java HttpClient http://127.0.0.1:8080/kj/index.html index.html
注意中文可能会显示乱码,在得到源码后,应该做相应的转码工作,例如:
public static String GetURLstr(String strUrl)
{
InputStream in = null;
OutputStream out = null;
String strdata = "";
try
{
URL url = new URL(strUrl); // 创建 URL
in = url.openStream(); // 打开到这个URL的流
out = System.out;
// 复制字节到输出流
byte[] buffer = new byte[4096];
int bytes_read;
while ((bytes_read = in.read(buffer)) != -1)
{
String reads = new String(buffer, 0, bytes_read, "UTF-8");
//System.out.print(reads);
strdata = strdata + reads;
// out.write(buffer, 0, bytes_read);
}
in.close();
out.close();
return strdata;
}
catch (Exception e)
{
System.err.println(e);
System.err.println("Usage: java GetURL <URL> [<filename>]");
return strdata;
}
}
分享到:
相关推荐
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
做项目时总结的,java程序获取文件编码方式的两种最常用的方式(1.cpdetector第三方jar包,包含源码elipse项目;2.EncodingDetect.java工具类)。
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
java源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码...源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码java...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Java获取屏幕上任意点颜色源码 我的思路比较简单: 第一步:抓一张全屏的图片 第二步:通过鼠标移动事件 获取x,y坐标 第三步:获取图片上x,y坐标的颜色
Java 汉字 拼音 部首 笔画 笔画数目 Java,获取汉字拼音、部首、笔画、笔画数目源文件、源码
java 连接opc服务源码两种方式Utgard,Jeasyopc; 亲测Utgard可远程连接opc服务只需知道opc服务器用户名密码
Java三种生成条形码的源码 1、用barcode4j方式生成 2、用jbarcode方式生产成 3、google-zxing方式生成,但该方式较不方便,添加条形码数字叫复杂
线的端点坐标获取可以采用鼠标点取或采用弹出对话框的方式。 任选一种画圆算法实现绘制任意圆心、半径的圆 要求:线能够设置线型、线宽和颜色;线的端点坐标获取可以采用鼠标点取或采用弹出对话框的方式。 任选一种...
java实现简单的远程控制,附源码。 主要应用socket robot image swing
一个pc下的java炸弹人实现及源码
java源码 安卓自动化获取界面元素(appium-desktop) .
Java源码获取数据库中表的字段信息
JAVA学生管理系统源码JAVA学生管理系统源码JAVA学生管理系统源码JAVA学生管理系统源码JAVA学生管理系统源码JAVA学生管理系统源码JAVA学生管理系统源码
java高并发秒杀api源码
j2ee java C# php 页面 获取摄像头 截图并上传, 整合到项目包内有tomcat,和myeclipse源码
java视频播放器源码。包含jar。。。。。。。。。。。。。。。。代码详细,。。。。。。。。。超好用