通过File类以及文件输入输出流( FileInputStream 、 FileOutputStream ),可以轻松地创建、删除、复制文件或者目录 。
这里,我提供给你一个实用的文件工具类——FileUtils 。
限于篇幅,就不贴太多代码了,需要的话找我(微信:qing_gee)要 。
03、网络套接字——Socket
虽然网络套接字( Socket )并不在java.io包下,但它和输入输出流密切相关 。File 和 Socket 是两组主要的数据传输方式 。
Socket 是描述计算机之间完成相互通信的一种抽象 。可以把 Socket 比作为两个城市之间的交通工具,有了交通工具(高铁、汽车),就可以在城市之间来回穿梭了 。交通工具有多种,每种交通工具也有相应的交通规则 。Socket 也一样,也有多种 。大部分情况下,我们使用的都是基于 TCP/IP 的套接字——一种稳定的通信协议 。

文章插图
假设主机A是客户端,主机B是服务器端 。客户端要与服务器端通信,客户端首先要创建一个 Socket 实例,操作系统将为这个 Socket 实例分配一个没有被使用的本地端口号,并创建一个套接字数据结构,直到这个连接关闭 。
示例如下 。
与之对应的,服务端需要创建一个 ServerSocket 实例,之后调用 accept() 方法进入阻塞状态,等待客户端的请求 。当一个新的请求到来时,将为这个连接创建一个新的套接字数据结构 。
示例如下 。
Socket 一旦打通,就可以通过 InputStream 和 OutputStream 进行数据传输了 。
04、压缩
Java I/O 支持压缩格式的数据流 。在 Socket 通信中,我常用 GZIPOutputStream 和 GZIPInputStream 来对数据流进行简单地压缩和解压 。
压缩的好处就在于能够减小网络传输中数据的体积 。代码如下 。
【Java I/O 入门篇】
推荐阅读
- IDE 一篇文章带你明白:什么是编译器,什么是集成开发环境?
- 深入理解Java继承的实现原理
- 都说4S店套路多 看完这篇秘笈安心提新车
- 笔记本|入门性能可战GTX 1650!用户买不到 Intel Arc显卡本着急了:官方回应
- Java-背包算法实现
- JavaScript 中的位运算和权限设计
- mysql数据库基本增删改查操作总结
- JAVA中ArrayList、LinkedList、Vector、Stack的比较
- 15个入门基础护肤法则,护肤小白赶紧拿去收藏
- 教育教学读书心得体会3篇 读书活动心得体会
