我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java全面解析IO流相关知识

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java全面解析IO流相关知识

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结

前言

流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出

一、File

1.File类的概述和构造方法

在这里插入图片描述
在这里插入图片描述

通过如上的图相信对文件打的相关应用已经有了初步的认识,因为封装的不是真正存在的文件,仅仅是一个路径名而已,所以没有那个路径的文件也可以写,不会报错,将来是把不存在的转换为具体存在的。

2.File类创建功能

在这里插入图片描述

这里需要注意的是:不能根据目录来判断是创建的文件还是目录,而是通过调用的方法来判断的,路径那个只是名字而已,文件和目录的名字也不能是一样的

3.File类判断和获取功能

在这里插入图片描述

4.File类删除功能

在这里插入图片描述

注意:File的相关操作与字节流没有继承的关系,所以要删除文件的话还是的用File的删除功能才可

二、字节流

1.IO流的概述和分类

概述

在这里插入图片描述

分类

在这里插入图片描述

2.字节流写数据

在这里插入图片描述

记得一定要释放资源

3.字节流写数据的两个小问题

字节流写数据如何换行

在这里插入图片描述

不同的操作系统的换行是不一样的

字节流写数据如何实现追加写入

在这里插入图片描述

值得注意的是是在文件的后面添加,而原来的数据还是有的,所以在用的时候就要考虑一下是怎样使用自己的文件的

4.字节流写入数据假异常处理

在这里插入图片描述

就是简单的异常处理而已,如果不使用处理的话就抛出就可以了

5.字节流读数据(重点)

一次读一个字节的数据

在这里插入图片描述

标准的代码格式就是这样的

在这里插入图片描述

一次读一个数组的数据

在这里插入图片描述
在这里插入图片描述

字节流读数据其实很简单,这里需要注意的是字节流读数据的话可以有两种方法,至于使用怎样的方法就得取决于自己得使用就行了

6.字节缓冲流

在这里插入图片描述
在这里插入图片描述

7.如何选择怎样得数据读取呢?

在这里插入图片描述

从图中可以看出字节缓冲流得读取比基本得字节读取要快很多,如果要节省时间得话就可以考虑用字节缓冲流来进行字节流得读取

三、字符流

1.为什么会出现字符流?

在这里插入图片描述

所以他的底层操作的实质还是字节流

编码表

在这里插入图片描述

这里需要注意的是用的什么编码就必须用对应的解码,否则就会出现乱码的情况

2.字符串中的编码解码问题

在这里插入图片描述
在这里插入图片描述

3.如何实现解决编译解码的问题

在这里插入图片描述

其实写的时候是写在了缓冲区,并没写在文件里,可以刷新,也可以关闭流它会自动的刷新

代码理解

在这里插入图片描述

4.字符流写数据的方法

在这里插入图片描述

在这里插入图片描述

5.字符流读数据的方法

在这里插入图片描述

在这里插入图片描述

字节流与字符流的读数据的思想是一样的只不过一个是字符,一个是字节而已

6.字符流复制文件

其方法和字节流的方法一样,只是一个是字节一个是字符而已
方法一:一个一个的字符进行的复制
方法二:一个字符数组一个字符数组的复制

准换流
OutputStreamWriter 他又一个子类是:FileWriter
InputStreamReader 它有一个子类是: FileReader
我们在复制文件等相关操作的时候可以用他的子类进行操作,书写更加的简单,但是,在进行编码问题解决的时候还是得用转换流才可以

7.字符缓冲流

在这里插入图片描述
在这里插入图片描述

字符缓冲流的特有功能

在这里插入图片描述

那么可以做什么呢?
我们可以通过其中特有的功能进行文件的复制等
需要注意的是readline只是读的是内容,不读其他的

8.字节,字符流小结

(此时有个使用的问题就是用哪儿文件的读取就写哪儿,写在一起容易出问题,还有就是一定要释放资源)
字节流

在这里插入图片描述

字符流

在这里插入图片描述

关于乱码的问题
个人认为出现乱码是因为如果用的是字节流的话用char来强制转换显示的话就是只有其中的一部分并没有把一个汉字的那个文字表达组如(【-1,23,36】)表达完整,但是如果用new String()来显示的话会表达完整(可能是里面有相应的方法,具体不清楚,知道就行了),如果用的是字符流的话就是用的默认的编码以及你相应要求的编码来表达,所以就不会出现乱码的问题了

9.复制文件的异常处理

在这里插入图片描述

在这里插入图片描述

四、特殊操作流

1.标准输入流

在这里插入图片描述

在这里插入图片描述

2.标准输出流

在这里插入图片描述
在这里插入图片描述

3.打印流

字节打印流

在这里插入图片描述
在这里插入图片描述

字符打印流

在这里插入图片描述
在这里插入图片描述

4.对象序列化流与对象反序列化流(它是基于字节流上的)

对象序列化流

在这里插入图片描述
在这里插入图片描述

对象反序列化流

在这里插入图片描述

在这里插入图片描述

5.解决对象序列化流的三个问题

在这里插入图片描述
在这里插入图片描述

6.Properties

在这里插入图片描述

代码理解(properties作为map集合的使用)

在这里插入图片描述

properties作为集合特有的方法

在这里插入图片描述

第一个是写数据进入集合
第二个是根据键得到值
第三个是得到键得集合

在这里插入图片描述

Properties和IO流结合的方法

集合数据写到文件

在这里插入图片描述

文件写到集合

在这里插入图片描述

总结

IO流其实很简单,重点是要掌握其中的字节流读写方法,以及字符流的读写方法和Properties与IO流结合的进行使用。

到此这篇关于Java全面解析IO流相关知识的文章就介绍到这了,更多相关Java IO流内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java全面解析IO流相关知识

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java IO流相关知识代码解析

一、IO流的分类字符流ReaderInputStreamReader(节点流)BufferedReader(处理流)WriterOutputStreamWriter(节点流)BufferedWriter(处理流)PrintWriter字节流
2023-05-30

JAVA的IO流相关知识点有哪些

今天小编给大家分享一下JAVA的IO流相关知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一.Input和Outp
2023-06-03

Java IO相关知识有哪些

这篇文章主要介绍了Java IO相关知识有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、IO底层是怎么回事?操作系统就是管家,电脑的设备就是资源,如果进程先要操作资源
2023-06-15

JAVA IO流知识点全总结

文件的创建方式 首先查看File类的构造器,得出有三种常见的创建方式 直接传入构建的文件路径,通过构造器 File(String pathname),直接传入文件路径,以下为演示代码(在IO流的操作中总是伴随着编译时异常,可使用Alt+E
2023-08-16

Laravel面试题的相关知识点分析

小编给大家分享一下Laravel面试题的相关知识点分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!23 个你应该知道的 Laravel 面试问题探索下一次技术面
2023-06-14

JavaScript中Math对象相关知识全解

Math对象中的方法很常用,来跟我一起看看吧,下面这篇文章主要给大家介绍了关于JavaScript中Math对象相关知识全解的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-16

Python解析json文件相关知识学习

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用
2022-06-04

全方面解析Spark知识体系

Spark是整个BDAS的核心组件,是一个大数据分布式编程框架,不仅实现了MapReduce的算子map函数和reduce函数及计算模型,还提供更为丰富的算子,如filter、join、groupByKey等。是一个用来实现快速而同用的集群计算的平台。编程学习网教育
全方面解析Spark知识体系
2024-04-23

如何深入解析JVM ClassLoader相关知识

如何深入解析JVM ClassLoader相关知识,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。深入JVM:关于ClassLoader的一些知识一.什么是ClassLoad
2023-06-17

全面梳理下CSS盒模型的相关知识点

前言 CSS 盒模型是 CSS 基础的重点难点,因此常被面试官们拿来考察候选人对前端基础的掌握程度,这篇文章将对 CSS 盒模型知识点进行全面的梳理。标准盒模型和IE盒模型区别
2023-05-14

JavaScript基础知识:全面解析,一学就会

JavaScript 作为一门脚本语言,深受广大程序员喜爱。本文将全面解析 JavaScript 的基础知识,从基本语法到高级特性,循序渐进地带领读者掌握 JavaScript 的核心内容。 JavaScript、语法、变量、运算符、条件语句、循环语句、函数、数组、对象 1. 基本语法
JavaScript基础知识:全面解析,一学就会
2024-02-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录