IO流与网络编程
文章目录
- IO流
- 随机存取文件流
- 读取文件内容
- 写入文件内容
- 流的基本应用小节
- NIO.2中Path、Paths、Files类的使用
- Path、Paths和Files核心API
- 网络编程
- 网络编程概述
- 网络基础
- 网络通信要素概述
- 如何实现网络中的主机互相通信
- IP和端口号
- InetAddress类
- 网络协议
- TCP/IP协议簇
- URL编程
- URL类
- URL类常用方法
IO流
随机存取文件流
-
RandomAccessFile 声明在java.io包下,但直接继承于java.lang.Object类
-
RandomAccessFile 类支持 “随机访问” 的方式,程序可以直接跳到文件的任意地方来读、写文件
- 支持只访问文件的部分内容
- 可以向已存在的文件后追加内容
-
构造器
- public RandomAccessFile(File file, String mode)
- public RandomAccessFile(String name, String mode)
读取文件内容
RandomAccessFile raf = new RandomAccessFile(“test.txt”, “rw”);
raf.seek(5);
byte [] b = new byte[1024];
int off = 0;
int len = 5;
raf.read(b, off, len);
String str = new String(b, 0, len);
System.out.println(str);
raf.close();
写入文件内容
RandomAccessFile raf = new RandomAccessFile("test.txt", "rw");
raf.seek(5);
//先读出来
String temp = raf.readLine();
raf.seek(5);
raf.write("xyz".getBytes());
raf.write(temp.getBytes());
raf.close();
流的基本应用小节
- 流是用来处理数据的。
- 处理数据时,一定要先明确数据源,与数据目的地
- 而流只是在帮助数据进行传输,并对传输的数据进行处理,比如过滤处理、转换处理等。
NIO.2中Path、Paths、Files类的使用
Path、Paths和Files核心API
- 早期的Java只提供了一个File类来访问文件系统,但File类的功能比较有限,所提供的方法性能也不高。而且,大多数方法在出错时仅返回失败,并不会提供异常信息
- NIO. 2为了弥补这种不足,引入了Path接口,代表一个平台无关的平台路径,描述了目录结构中文件的位置。Path可以看成是File类的升级版本,实际引用的资源也可以不存在。
网络编程
网络编程概述
网络基础
- 网络编程的目的:直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。
- 网络编程中有两个主要的问题:
- 如何准确地定位网络上一台或多台主机;定位主机上的特定的应用
- 找到主机后如何可靠高效地进行数据传输
网络通信要素概述
如何实现网络中的主机互相通信
- 通信双方地址
- IP
- 端口号
- 网络通信协议。
- OSI参考模型
- TCP/IP参考模型(或TCP/IP协议)
IP和端口号
-
IP 地址:InetAddress
- 唯一的标识 Internet 上的计算机
- 本地回环地址(hostAddress):127.0.0.1 主机名(hostName):localhost
- IP地址分类方式1:IPV4 和 IPV6
- IP地址分类方式2:公网地址(万维网使用)和私有地址(局域网使用)。192.168.开头的就是私有址址,范围即为192.168.0.0–192.168.255.255,专门为组织机构内部使用
-
端口号
- 不同的进程有不同的端口号
- 被规定为一个 16 位的整数 0~65535。
- 端口分类
- 公认端口:0~1023。
- 注册端口:1024~49151。
- 动态/私有端口:49152~65535。
- 端口号与IP地址的组合得出一个网络套接字:Socket。
InetAddress类
- Internet上的主机有两种方式表示地址
- InetAddress类主要表示IP地址,两个子类:Inet4Address、Inet6Address。
- InetAddress类没有提供公共的构造器,而是提供了如下几个静态方法来获取InetAddress实例
- InetAddress提供了如下几个常用的方法
网络协议
TCP/IP协议簇
- 传输层协议中有两个非常重要的协议:
- 传输控制协议TCP
- 用户数据报协议UDP
- TCP/IP 以其两个主要协议:传输控制协议(TCP)和网络互联协议(IP)而得名
- IP(Internet Protocol)协议是网络层的主要协议,支持网间互连的数据通信。
- TCP/IP协议模型从更实用的角度出发,形成了高效的四层体系结构,即物理链路层、IP层、传输层和应用层
URL编程
URL类
- URL(Uniform Resource Locator):统一资源定位符,它表示 Internet 上某一资源的地址。
- 它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源
- URL的基本结构由5部分组成:
<传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表
URL类常用方法
public String getProtocol( ) 获取该URL的协议名
public String getHost( ) 获取该URL的主机名
public String getPort( ) 获取该URL的端口号
public String getPath( ) 获取该URL的文件路径
public String getFile( ) 获取该URL的文件名
public String getQuery( ) 获取该URL的查询名