亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

URL與URI

系統(tǒng) 2036 0

* URL(Uniform Resource Locator ),通用資源定位符。 http://www.mybole.com.cn/index.asp 就是一個URL。


* URI(Uniform Resource Identifier),通用資源標識符。


* URI純粹是個符號結構,用于指定構成Web資源的字符串的各個不同部分。URL是一種特殊類型的URI,它包含了用于查找某個資源的足夠信息。其它的URI,例如: mailto:myoble@mybole.com.cn 則不屬于定位符,因為它里面不存在根據(jù)該標識符來查找的任何數(shù)據(jù)。這種URI稱為URN(通用資源名)。


* 在Java庫中,URI類不包含用于訪問通用資源標識符設定的任何方法,它的唯一作用是進行分析。相反,URL類則可以打開到達資源的一個字符串。

實驗:通過URL 來下載服務器上的一個資源文件,需要Tomcat服務器支持

?

代碼:

?

?

    package cn.com.xinli.test.socket;

import java.awt.event.*;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import javax.swing.*;

public class HttpDownLoad
{
	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();
	            System.out.println("輸入URI的內容:"+str);
	            String fileName=str.substring(str.lastIndexOf("/")+1);
	            /*下載文件的名字*/
	            System.out.println("fileName:"+fileName);
	            
	            try {
	              URL url=new URL(str);
	              URLConnection urlConn=url.openConnection();
	              /**
	               * 由于windos 系統(tǒng)的換行符是\r\n,linux 系統(tǒng)的換行符是\n,
	               * 為了通用我們可以使用系統(tǒng)屬性的方式得到換行符
	               * 
	               */
	              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();
	              
	              /**
	               * 以下注釋的部分為按行讀取 關鍵代碼:strLine=br.readLine())!=null
	               * 為注釋的部分為按字節(jié)讀取,每次讀一個字節(jié) 關鍵代碼:(data=is.read())!=-1
	               * 
	               * 文本和html等格式文件可以按行讀取
	               * 圖像聲音文件必須按字節(jié)讀取,因為這個時候已經(jīng)沒有 行 的概念
	               * 其實所有的文件都可以按字節(jié)讀取,建議使用按字節(jié)讀取 
	               */
	              //InputStreamReader isr=new InputStreamReader(is);
	              //BufferedReader br=new BufferedReader(isr);
	              
	              FileOutputStream fos=new FileOutputStream(fileName);
	              //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();
	  }
}

  

?

?

?

啟動TOMCAT,啟動應用程序,下載 /bz/images 應用下的圖片文件到 測試程序的根路徑下

?

?

?

?

成功將服務器上/bz/images/下的一個圖片文件下載到本程序的 根路徑下!

?

?

發(fā)揮:

?

此程序以后可以應用到 從另外一個遠端的服務器上下載文件,而不需要走web層,從response對象中得到輸出流

?

URL與URI


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 97久久精品 | 国产精品久久久久影院嫩草 | 二区三区视频 | 99爱视频在线观看 | 波多野结衣精品中文字幕 | 久操热久操 | 国产羞羞事1000部在线观看 | 日本大胆一区免费视频 | 久久成年视频 | 国产精品久久久久久久久齐齐 | 色偷偷尼玛图亚洲综合 | 国产亚洲精品精品国产亚洲综合 | 综合亚洲欧美日韩一区二区 | 久久久免费精品视频 | 亚洲国产另类久久久精品小说 | 久久不卡一区 | 亚洲永久精品ww47 | 婷婷精品 | 99久久免费国产精精品 | 国产婷婷色一区二区三区 | 亚洲国产精品久久 | 日韩欧美亚洲国产一区二区三区 | 日韩欧美印度一级毛片 | 国产1000部成人免费视频 | 96国产xxxx| 欧美人在线一区二区三区 | 妖精视频永久在线入口 | 久久精品一区二区 | 久久久久久免费精品视频 | 久久亚洲在线 | 青草视频网址 | 操穴影院| 模特啪啪| 亚洲综合五月 | 亚洲精品二三区伊人久久 | 男人叼女人的痛爽视频免费 | 国产亚洲精彩视频 | 97国产成人精品免费视频 | 97免费在线观看视频 | 欧美日韩在线播放 | 九九影院理论片私人影院 |