详解Java编程中统一资源定位符URL的相关使用

时间:2021-05-19

统一资源定位符URL(Uniform Resource Locator)是/”);//先要创建一个URL对象 URLConnection muC = mu.openConnection();//获得URLConnection对象


上述代码说明,先要创建一个URL对象,然后利用URL对象的openConnection()方法,从系统获得一个URLConnection对象。程序有了URLConnection对象后,就可使用URLConnection类提供的以下方法获得流对象和实现网络连接:
getOutputStream():获得向远程主机发送信息的OutputStream流对象;
getInputStream():获得从远程主机获取信息的InputStream流对象。有了网络连接的输入和输出流,程序就可实现远程通信;
connect():设置网络连接。
信息的发送和接收

发送和接收信息要获得流对象,并由流对象创建输入或输出数据流对象。然后,就可以用流的方法访问网上资源。

参见下面例子程序中的方法readByURL(),该方法说明已知网址读取网页内容的过程。方法利用网址参数创建一个URL对象url,接着利用对象url的openConnect()方法,获得URLConnection对象tc,用对象tc的connect()方法建立网络连接,接着获得网络连接的InputStreamReader类对象in,将对象in,转化成为BufferedRead对象dis,改为缓冲式输入。最后,用对象dis的readLine()方法完成读取网络文本数据。

如同本地数据流一样,网上资源使用结束后,数据流也应及时关闭。例如,代码

dis.close();


关闭先前代码建立的流dis。

【例】以数据流方法读取网页内容的应用程序。程序运行时,网址从文本框中读取。

import java.net.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.javax.swing.*;public class Example10_2{ public static void main(String args[]){ new downNetFile(); }}class DownNetFile extends JFrame implements ActionListener{ JTextFileld infield = new JTextField(30); JTextarea showArea = new JTextArea(); JButton b = new JButton(“download”);JPanel p = new JPanel(); DownNetFile(){ super(“read network text file application”); Container con = this.getContentPane(); p.add(infield);p.add(b); JScrollPane jsp = new JScrollPane(showArea); b.addActionListener(this); con.add(p,”North”);con.add(jsp,”Center”); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500,400);setVisible(true); } public void actionPerformed(ActionEvent e){ readByURL(infield.getText()); } public void readByURL(String urlName){ try{ URL url = new URL(urlName);//由网址创建URL对象 URLConnection tc = url.openConnectin();//获得URLConnection对象 tc.connect();//设置网络连接 InptStreamReader in = new InputStreamReader(tc.getInputStream()); BufferedReader dis = new BufferedReader(in);//采用缓冲式输入 String inline; while((inline = dis.readLine())!=null){ showArea.append(inline +”\n”); } dis.close();//网上资源使用结束后,数据流及时关闭 }catch(MalformedURLException e){ e.printStackTrace(); } catch(IOException e){e.printStacktrace();} }}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章