| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> IO流以及File类 -> 正文阅读 |
|
[Java知识库]IO流以及File类 |
File类:(不属于流,它只是进行对文件的操作,并不没有进行对数据的操作) File类:它是文件和目录路径名的抽象表示;文件和目录是可以通过File封装对象的;对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的。 File类的作用:一个File对象而可以代表一个文件或目录;File可以实现获取文件和目录属性等功能;可以实现对文件和目录的创建,删除等功能。 路径: 相对路径:必须使用取自其他路径名的信息解释。例如:myFile\\java.txt,它其实是在和同一IDEA的模块的同一位置。 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:E:\\itcast\\java.txt。 IO:输入/输出(Input/Output),从硬盘到内存的过程叫输入(读数据),从内存到硬盘的过程叫输出(写数据) 什么是流:是一种抽象概念,是对数据传输的总称。也就是说数据再设备间的传输称为流,流的本质是数据传输。 IO流的作用:IO流就是用来处理设备间数据传输问题的(常见应用:文件复制,文件上传,文件下载) IO流的分类: 按照数据的流向: 输入流:读数据。 输出流:写数据。 按照数据类型来分: 字节流:字节输入流;字节输出流。 字符流:字符输入流;字符输出流。 使用情况:如果数据通过Window自带的记事本软件打开,我们还可以读懂里面的内容,就使用字符流;否则使用字节流。如果不知道该使用那种类型的流,就使用字节流(万能流)。 字节流: 字节流抽象基类: 1.InputStream:这个抽象类是表示字节输入流的所有类的超类。 2.OutputStream:这个抽象类是表示字节输出流的所有类的超类。 两个都是继承于Object。 子类名特点:子类名称都是以其父类名为子类名的后缀。 字节流总结: ? 字符流: 为什么出现字符流: ?一个汉字的存储:如果时GBK编码,占用2个字节;如果是UTF-8编码,占用3个字节。 由于字节流操作中文不是特别方便,所以JAVA就提供了字符流(字符流=字节流+编码表)。 用字节复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文呢----汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数。 字符流抽象基类: Reader:字符输入流的抽象类。 Winter:字符输出流的抽象类。 转换流: OutputStreamWriter类: 将字节输出流变为字符输出流。 InputStreamReader类 : 将字节输入流变为字符输入流。 字符流小结: ? ? 注意: 便捷类(便捷类是不能做到解码和编码的过程,只能使用到默认的UTF-8;但是还是可以用到父类的读写的代码;要实现解码编码就要使用他们对应的父类):FileReader;FileWriter。 字符流与字节流的区别以及使用场景: 区别: 1.字节流操作的基本单元是字节;字符流操作的基本单元是字符。 2.字节流默认不使用缓冲区;字符流使用缓冲区。 3.字节流通常用于处理二进制数据,不支持直接读写字符;字符流通常用于处理文本数据。 4.在读写文件需要对文本内容进行处理:按行处理、比较特定字符的时候一般会选择字符流;仅仅读写文件,不处理内容,一般选择字节流。 应用场景: 字节流比较万能,能处理文本、音频、图片。 字符流运用于文本,但是如果文本中的中文比较多,字符流会比字节流便捷,处理文本多用字符流。 注意:所有是IO流相关的操作,最后都要释放资源。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:26:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |