文章目录
前言
Java学习真是一环扣一环,学完IO流以后就想着接下来是什么呢,一看Java基础学习计划是——Java网络编程基础,针对这一部分知识点比较多,以免大家出现视觉疲劳,我会写成小系列的博客。
一、Java网络编程基础概述
Java网络编程其实就是实现局域网或互联网之间的数据通信。
二、Java网络API
Java中网络API在java.net包中定义
面向IP层的类 | InetAddress |
---|---|
面向应用层的类 | URL、URLConnection |
TCP协议相关类 | Socket、ServerSocket |
UDP协议相关类 | DatagramSocket、DatagramPacket、MulticastSocket |
可能产生的例外 | Exception |
三、IP编程
InetAddress提供网络资源的抽象表示,提供了一系列方法来描述、获取及使用网络资源
1.InetAddress
InetAddress不能使用new来构造InetAddress实例,而是通过静态方法来获取,这些方法可能会产生例外(异常)。
2.InetAddress示例(代码示例)
代码如下(示例):
import java.net.InetAddress;
public class Test01 {
public static void main(String[] args) throws Exception {// 抛出异常
InetAddress inetAddress = InetAddress.getLocalHost();// InetAddress提供网络资源的抽象表示获取本地主机信息
String hostName = inetAddress.getHostName(); // 获取本地主机名
String hostAddress = inetAddress.getHostAddress(); // 获取本地主机IP
System.out.println(hostAddress);
System.out.println(hostName);
InetAddress inetAddress2 = InetAddress.getByName("本地主机的名字");// 依据主机的名字得到相应的InetAddress当然这个地方也可以依据IP获得
String hostAddress2 = inetAddress2.getHostAddress(); // 依据InetAddress获取主机IP
String hostName2 = inetAddress2.getHostName();// 依据InetAddress获取主机名
System.out.println(hostAddress2);
System.out.println(hostName2);
}
}
四、应用层(URL)编程
URL是统一资源定位符的简称,它表示internet上某一资源地址。
1.URL编程
Java程序通过URL可以访问Internet,浏览器或者其他程序通过解析给定的URL就可以在网络上查找相应资源。
2.构造URL对象
URL url = new URL("https://img-home.csdnimg.cn:8554/images/20210226094215.jpg");
3.获取各个参数
代码如下(测试):
import java.net.URL;
public class Test02 {
public static void main(String[] args) throws Exception {
URL url = new URL("https://img-home.csdnimg.cn:8554/images/20210226094215.jpg");
System.out.println(url.getProtocol()); //获取该URL协议名
System.out.println(url.getHost()); //获取该URL主机名
System.out.println(url.getPort()); //获取该URL端口号
}
}
代码如下(输出):
https
img-home.csdnimg.cn
8554
4.获取URL指向的资源(图片)
4.1获取URL指向的资源(图片)思路
通过openStream()方法读取一个URL所指定的资源,再建立连接并返回InputStream就可读取资源,再使用OutputStream将读取的资源保存如硬盘
4.2获取URL指向的资源(图片)代码实现
代码如下(测试):
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
public class Test03 {
public static void main(String[] args) throws Exception {
URL url = new URL("https://img-home.csdnimg.cn/images/20210226094215.jpg"); //创建URL对象
InputStream openStream = url.openStream(); //通过openStream()方法读取一个URL所指定的资源
OutputStream outputStream = new FileOutputStream("D:"+File.separator+"2015.jpg");// 保存下来的地址
int ch = 0;
while((ch = openStream.read())!=-1) {// 读取
outputStream.write(ch);//写出
}
openStream.close();
outputStream.flush();//刷新(只要涉及到"流"建议在关闭之前刷新一下)
outputStream.close();
System.out.println("数据读取完毕");
}
}
代码如下(输出):
数据读取完毕
获取效果展示(没有运行之前)
获取效果展示(运行之后)
总结
IP测试输出我就不展示了,其实在学完这个就感觉有了一点爬虫的影子了
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/5098.html