您的位置:首页 > 其它

如何将一个url的返回值写入到文件中

2010-09-09 21:38 323 查看
认识IP、认识URL是进行网络编程的第一步。java.net.URL提供了丰富的URL构建方式,并可以通过java.net.URL来获取资源。

一、认识URL
类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。

简单的可以把URL理解为包含:协议、主机名、端口、路径、查询字符串和参数等对象。每一段可以独立设置。

应用程序也可以指定一个“相对 URL”,它只包含到达相对于另一个 URL 的资源的足够信息。HTML 页面中经常使用相对 URL.

相对 URL 不需要指定 URL 的所有组成部分。如果缺少协议、主机名称或端口号,这些值将从完整指定的 URL 中继承。

由于 URL 不懂 URL 转义,所以它不会识别同一 URL 的对等编码和解码形式。

注意,URI 类在某些特定情况下对其组成字段执行转义。建议使用 URI 管理 URL 的编码和解码,并使用 toURI() 和 URI.toURL() 实现这两个类之间的转换。

也可以使用 URLEncoder 和 URLDecoder 类,但是只适用于 HTML 形式的编码,它与 RFC2396 中定义的编码机制不同。

二、URL对象的构建 方式很多,可以看看API文档。

三、获取URL指定的资源
下面给个例子,说明如何获取到指定的资源。

/**
* 获取URL指定资源
*/
public static void fun1() throws IOException
{
URL url = new URL ("http://lavasoft.blog.51cto.com/attachment/200811/200811271227767778082.jpg");
//获得此 URL 的内容。
Object obj = url.getContent();
System.out.println(obj.getClass().getName());
}


/**
*获取URL指定资源
*/
public static void fun2() throws IOException
{
URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");
//返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
URLConnection uc = url.openConnection();
//打开的连接读取的输入流。
InputStream in = uc.getInputStream();
int c;
while ((c = in.read()) != -1)
System.out.print(c);
in.close();
}


/**
*读取URL指定网页内容
*/
public static void fun3() throws IOException
{
URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");
//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
Reader reader = new InputStreamReader(new BufferedInputStream(url.openStream()));
int c;
while ((c = reader.read()) != -1) {
System.out.print((char) c);
}
reader.close();
}


/**
* 获取URL的输入流,并输出
*
*/
public static void test() throws IOException {
URL url = new URL("http://lavasoft.blog.51cto.com/62575/120430");                //打开到此 URL 的连接并返回一个用于从该连接读入的InputStream。
InputStream in = url.openStream();
int c;
while ((c = in.read()) != -1)
System.out.print(c);
in.close();
}


四、Java所支持的URL类型
import java.net.URL;

public class MainClass
{
public static void main(String[] args)
{
String host = "www.java2s.com";
String file = "/index.html";
String[] schemes = {"http", "https", "ftp", "mailto", "telnet", "file", "ldap", "gopher", "jdbc", "rmi", "jndi", "jar", "doc", "netdoc", "nfs", "verbatim", "finger", "daytime", "systemresource"};
for (int i = 0; i < schemes.length; i++)
{
try {
URL u = new URL(schemes, host, file);
System.out.println(schemes + "
issupported/r/n");

} catch (Exception ex){
System.out.println(schemes + " is not supported/r/n");

}
}


第一步:创建URL对象 URL url = new URL("YOUR URL");

第二步:调用url的openStream()方法,目的是打开到此
URL
的连接并返回一个用于从该连接读入的
InputStream中


第三步:调用InputSteeam中的read()方法即可,但是InputStream是抽象类,所以子类必须给出read()方法的实现,也就是说可以声


明一个InputStream的子类。


URL url = new URL("http://www.baidu.com");

FileInputStream fin = url.openStream();

int i;

while(i == fin.read() != -1)
{
System.out.println((char)i);
}

fin.close();
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐