IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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流相关的操作,最后都要释放资源。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:11:18  更:2022-04-01 23:15:26 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码