URL用法示例

URL(Uniform Resource Locator ),通用资源定位符。
URI(Uniform Resource Identifier),通用资源标识符。
URI纯粹是个符号结构,用于指定构成Web资源的字符串的各个不同部分。URL是一种特殊类型的URI,它包含了用于查找某个资源的足够信息。其它的URI,例如:mailto:myoble@mybole.com.cn则不属于定位符,因为它里面不存在根据该标识符来查找的任何数据。这种URI称为URN(通用资源名)。
n在Java库中,URI类不包含用于访问通用资源标识符设定的任何方法,它的唯一作用是进行分析。相反,URL类则可以打开到达资源的一个字符串。
 
package socket;

import java.net.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;

public class URLDemo {
	public static void main(String[] args) {
		JFrame jf = new JFrame("下载程序");
		jf.setSize(600, 400);
		jf.setLocation(100, 100);
		JPanel p = new JPanel();
		JLabel l = new JLabel("Please input URL:");
		final JTextField tf = new JTextField(30);
		p.add(l);
		p.add(tf);
		jf.getContentPane().add(p, "North");
		final JTextArea ta = new JTextArea();
		jf.getContentPane().add(ta, "Center");
		JButton btn = new JButton("Download");
		jf.getContentPane().add(btn, "South");
		btn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String str = tf.getText();
				try {
					URL url = new URL(str);
					URLConnection urlConn = url.openConnection();
					String line = System.getProperty("line.separator");
					ta.append("Host: " + url.getHost());
					ta.append(line);
					ta.append("Port: " + url.getDefaultPort());
					ta.append(line);
					ta.append("ContentType: " + urlConn.getContentType());
					ta.append(line);
					ta.append("ContentLength: " + urlConn.getContentLength());
					InputStream is = urlConn.getInputStream();
					// InputStreamReader isr=new InputStreamReader(is);
					// BufferedReader br=new BufferedReader(isr);
					FileOutputStream fos = new FileOutputStream("1.html");
					// String strLine;
					// while((strLine=br.readLine())!=null)
					int data;
					while ((data = is.read()) != -1) {
						// fos.write(strLine.getBytes());
						// fos.write(line.getBytes());
						fos.write(data);
					}
					// br.close();
					is.close();
					fos.close();
				} catch (Exception ex) {
					ex.printStackTrace();
				}

			}
		});
		jf.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		jf.show();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值