URL组成部分及创建:
- 协议 + 存放资源主机位置+端口 +资源文件名(相对主机相对路径)
- 创建
- 绝对路径创建:URL(String spec)
- 相对路径创建:相对路径构建,URL(URL context, spec)
利用URL获取网络资源import java.net.MalformedURLException; import java.net.URL; /** * 协议 存放资源主机名 端口 资源文件名(/之后的,的相对路径相对主机) * URL创建: * 一:绝对路径构建,URL(String spec) * 二:相对路径构建,URL(URL context, spec) * * @author Administrator */ public class url { public static void main(String[] args) throws MalformedURLException { // 绝对路径构建 URL url = new URL("http://baidu.com:80/index.html#aa?name=te"); System.out.println("协议" + url.getProtocol()); System.out.println("域名" + url.getHost()); System.out.println("端口" + url.getPort()); System.out.println("资源" + url.getFile()); System.out.println("相对路径" + url.getPath()); // 锚点和参数冲突只能获取一个 System.out.println("锚点" + url.getRef()); System.out.println("参数" + url.getQuery()); // 相对路径构建 url = new URL("http://baidu.com:80/a/"); url = new URL(url, "b.txt"); System.out.println(url.toString()); } }
package cn.woniux.url; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; /** * URL获取网页源代码 openStream * * @author Administrator * */ public class UrlGetSource { public static void main(String[] args) throws IOException { URL url = new URL("http://www.baidu.com"); //获取网络资源 InputStream input = url.openStream(); //数据输入流,将网络获取的字节流,解析为字符流,已缓冲流输入 BufferedReader br = new BufferedReader(new InputStreamReader(input, "utf-8")); //数据输出流,读取输入流的字符流,利用文本流输入到指定的文本中 BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(new FileOutputStream("baidu.html"), "utf-8")); String msg = null; /*将输入流数据放入输出流中*/ while ((msg = br.readLine()) != null) { bw.append(msg); bw.newLine(); } /*关闭资源*/ bw.flush(); bw.close(); br.close(); } }