前言:
第八个java程序了,现在到了网络服务和访问网络资源部分了。首先主要说一下这次的三个小程序就是测试URL网络资源定位符,访问网络文件,访问网络图像文件。其中,访问的都是我自己的网络,现在它已经被改得面目全非了。因为之前做的不符合定位(链接不符合),我就都删了内容,现在只剩下一个空壳“哈哈”。
我们一起来看看程序吧,来看第一个URL测试。
依旧是老方法,项目,包,引用,主类,主方法。
一、统一资源定位符类URL
package shiyan;
import java.net.*;//导入java.net网络包中的类
import java.io.*;//导入java.io输入流包中的类
//访问网络资源
//统一资源定位符类URL
public class eight1 {//统一资源定位符URL的用法
public static void main(String args[]) {//主方法
try {//处理可能出现的勾选异常MalformedURLException
URL url = new URL("http://www.mythreecat.top");
System.out.println("URL:"+url);
System.out.println("协议:"+url.getProtocol());
System.out.println("主机:"+url.getHost());
System.out.println("端口:"+url.getPort());
System.out.println("默认端口:"+url.getDefaultPort());
System.out.println("路径:"+url.getPath());
}
catch(MalformedURLException e) {e.printStackTrace();}
}
}
利用网络包中的类就可以轻易的得到这些内容了,大家可以试试呀。
运行如下:
二、访问并读取Web服务里的网页文件
package shiyan;
import java.net.*;
import java.io.*;
//访问并读取Web服务里的网页文件
public class eight2 {
public static void main(String []args) {
try{//处理可能出现的勾选异常IOException
URL url = new URL("http://www.mythreecat.top");
System.out.println("从网页读取信息:"+url);
InputStreamReader in =new InputStreamReader(url.openStream());
char cbuf[] = new char[3000];//只读3000个字符
int len = in.read(cbuf);
for(int n = 0;n<len;n++)
System.out.print(cbuf[n]);
System.out.print("字符编码是:"+in.getEncoding());
in.close();
}
catch(IOException e) {e.printStackTrace();}//捕捉并处理异常
}
}
这里可以看到我自己网络的主页的一些代码,自己可以更改网页,可以更改读取的字符数,可以看到更多的信息(爬取???)
运行如下:
三、访问Web服务里图像文件
package shiyan;
//访问Web服务里图像文件
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.swing.*;
public class eight3 {
public static void main(String []args) {
try {
String netURL = "http://www.mythreecat.top/images/ban15.jpg";
System.out.println("从网站读取图片:"+netURL);
URL url = new URL(netURL);
BufferedImage img = ImageIO.read(url);//加载网络图像
//创建框架窗口,显示加载的网络图像
JFrame w = new JFrame("显示网络图片");//创建窗口
w.setSize(850,610); w.setVisible(true);
w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtilities.invokeLater(()->{//在事件分发线程中绘图
Graphics g = w.getGraphics();//获取绘图对象
g.setFont(new Font("Times New Rome",0,24));//设置字体
g.drawString(netURL,10,75);//显示网址
g.drawImage(img,10,100,null);//显示图像
});
}
catch(IOException e) {e.printStackTrace();}//捕捉并处理勾选异常
}}
这个的话,你可能不知道图像存在哪里,这样你只需要打开这个页面,然后进行F12,就可以看到图片的位置,例如我自己的这个网页:
利用这个方法也可以得到很多图片显示效果,当然啦,个人觉得还是不方便(哈哈哈哈)
运行如下:
后记:
继续冲鸭!!!有误的可以评论指出哦,谢谢。