# zb_java0803 **Repository Path**: xiaojin686/zb_java0803 ## Basic Information - **Project Name**: zb_java0803 - **Description**: io流 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2018-08-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zb_java0803 # 课堂笔记 *IO流* *自行扩展 NIO、NIO2* ## 1 IO流 ### 1.1 文件工具类 jdk提供了一个对文件进行抽象封装工具File类 File类是用于处理文件的工具类 通常说的文件包含目录和文档(狭义的文件) 要求掌握文件类基本的方法,用于读取文件的基本信息和进行文件的相关操作; * 1 相对路径和绝对路径 绝对路径:是从文件系统的根目录开始的路径就是绝对路径; Windows系统:一般是从 C、d、e等盘符开始; Linux和Unix:一般是从根目录 / 开始; 例如: D:\\mytemp\\zb201807\\myFiles\\HelloWorld.java 相对路径:是从当前的位置开始,到目标位置的路径是相对路径; . 表示当前目录; .. 表示当前目录的上级目录; 例如: ../../../../mytemp/zb201807/myFiles/HelloWorld.java * 2 路径分隔符 Windows的路径分隔符是 \ ,因为\是一个特殊符号,所以在字符串中需要 使用 \\ 进行转义; 在字符串中 \\ 解析为 \ ; 常用的需要在字符串中进行转义的字符有: \n 换行 ; \t 制表符 ;\r 回车 , \\ 表示\ 要求:自行查找其他转义字符 windows中也可以使用 / 作为路径的分隔符,不需要进行转义 Linux和Unix路径分隔符:/ * 3 课下作业 (1)从控制台输入一个目录,将该目录下的所有的文件,以及子目录中的所有的文件遍历出来;【递归和非递归两种方式实现】 (2)从控制台输入一个目录,和查找的关键字,将该目录下的所有的文件的文件名中包含改关键字的文件遍历出来;【递归和非递归两种方式实现】【提示可以使用FileFilter或者if条件语句】 ### 1.2 IO流 IO流分类: 按流向分:(以系统或cup进行划分,进入的是输入流,流出的是输出流) 输入流; 输出流 按流的编码分类: 字节流; 以字节作为传输;二进制01字节流; 字节流的处理类以Stream结尾; 都是InputStream和OutputStream的子类; 字符流; 以字符作为传输单位; 字符流的处理类以er结尾; 都是Reader和Writer的子类; * 1 文件输入输出字节流 #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [http://git.mydoc.io/](http://git.mydoc.io/) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)