JAVA - File类、字节流、字符流、特殊操作流

1.File类的构造方法

在这里插入图片描述

File类的创建文件功能

在这里插入图片描述

File类的判断和获取功能

在这里插入图片描述

File类的删除功能

在这里插入图片描述

2.IO流 - 字节流、字符流

字节流

  1. 处理字节数据:字节流以字节为单位处理数据,适用于处理二进制文件(如图像、音频、视频文件)或以字节为基本单位的文本文件。

  2. 底层 I/O 操作:字节流通常用于执行底层I/O操作,因为它们可以直接读取和写入文件的字节数据。

  3. InputStream 和 OutputStream:在Java中,字节流有两个主要的抽象类:InputStream 用于读取字节数据,OutputStream 用于写入字节数据。

  4. 不适合字符数据:虽然可以用字节流来处理字符数据,但它们不够方便,因为它们不会处理字符编码,可能会导致字符数据在不同编码下的错误解释。

字符流

  1. 处理字符数据:字符流以字符为单位处理数据,适用于处理文本文件,如.txt文件。

  2. 字符编码:字符流在读取和写入数据时会考虑字符编码,以确保正确地处理不同编码的文本数据。

  3. Reader 和 Writer:在Java中,字符流有两个主要的抽象类:Reader 用于读取字符数据,Writer 用于写入字符数据。

  4. 适合文本处理:字符流更适合于文本文件的读取和写入,因为它们能够处理字符编码、字符集等字符相关的问题。

  • 如果您需要处理文本文件,特别是需要考虑字符编码和字符集的情况下,建议使用字符流(Reader和Writer)。
  • 如果您需要处理二进制文件或以字节为单位的数据,使用字节流(InputStream和OutputStream)更合适。
  • 在实际应用中,通常会根据需要选择合适的流类型,以确保数据的正确处理和高效性能。

JAVA字节流

InputStream// :这个抽象类是字节输`入`流的所有类的超类
OutputStream// :这个抽象类是字节输`出`流的所有类的超类
// 子类名特点:子类名称都是以其父亲名作为子类名的后缀FileOutputStream// :文件输出流用于将数据写入File

字节流写入的三种方式:

在这里插入图片描述

字节缓冲流

在这里插入图片描述

字符流

  • 汉字在存储的时候,无论哪种编码存储,第一个字节都是负数,所以才有了字符流专门解析文本
  • 字符流 = 字节流 + 编码表

编码和解码

编码:byte[] getBytes()
解码:String(byte[] bytes)

字符流抽象基类

  • Reader:字符输入流的抽象类
  • Writer:字符输出流的抽象类
  • 字符流中和编码解码问题相关的两个类:InputStreamReader; OutputStreamWriter;

字符流写数据的五种方式

在这里插入图片描述

字符流读数据的两种方式

在这里插入图片描述

字符缓冲流

  • BufferedWriter:将文本写入字符输出流,缓冲字符,提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小。默认值足够大,可用于大多数情况
  • BufferedReader:以读取文本在字符输入流,缓冲字符,提供字符,数组和行的高效读取,可以指定缓冲区大小。默认值足够大,可用于大多数情况

字符缓冲流的特有功能
在这里插入图片描述

IO流小结

在这里插入图片描述

Properties

在这里插入图片描述

3.特殊操作流-标准输入输出流

在这里插入图片描述
键盘录入类: new Scanner(System.in)

  • 标准输出流
    在这里插入图片描述

字节打印流

  • 字节打印流:PrintStream
  • 字符打印流:PrintWriter

字符打印流

  • 字符打印流PrintWriter
    在这里插入图片描述

对象序列化

在这里插入图片描述

对象序列化流

在这里插入图片描述

serialVersionUID&transient

在这里插入图片描述

对象反序列化流

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/109097.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】 Python 和 NumPy 系列教程(十七):Matplotlib详解:2、3d绘图类型(3)3D条形图(3D Bar Plot)

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 0. 设置中文字体 1. 线框图 2. 3D散点图 3. 3D条形图(3D Bar Plot) 一、前言 Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读…

二叉树的概念及存储结构

目录 1.树的概念 1.1树的相关概念 1.2树的表示与应用 2.二叉树的概念及结构 2.1二叉树的概念 2.1.1特殊的二叉树 2.2.2二叉树的性质 2.2二叉树的结构 2.2.1顺序存储 2.2.2链式存储 这是一篇纯理论的博客,会对数据结构中的二叉树进行详细的讲解,让你对树的能有个清晰的…

【洛谷算法题】P5705-数字反转【入门1顺序结构】

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5705-数字反转【入门1顺序结构】🌏题目描述🌏输入格式&a…

【Java基础】- RMI原理和使用详解

【Java基础】- RMI原理和使用详解 文章目录 【Java基础】- RMI原理和使用详解一、什么RMI二、RMI原理2.1 工作原理图2.2 工作原理 三、RMI远程调用步骤3.1 RMI远程调用运行流程图3.2 RMI 远程调用步骤 四、JAVA RMI简单实现4.1 如何实现一个RMI程序4.2 JAVA实现RMI程序 一、什么…

centos执行systemctl restart命令报连接超时

centos执行systemctl restart命令报连接超时 Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.TimedOut: Activation of org.freedesktop.PolicyKit1 tim…

idea 创建java web项目 run后出现404现象

1、创建新项目 创建的新项目只是单纯的java项目,如图 2、添加lib库文件,里面存放jar包,并导入库配置 这里要注意,需要先添加lib库文件再去配置模块和工件否则会出现404现象 3、打开模块设置,设置项目配置 将本…

python环境安装(windows)

1. python安装 一、官网下载安装包 打开python的 官网链接 https://www.python.org鼠标点击Downloads按钮 点击downloads后,下拉,找到如下界面,里面就是python的各个历史版本 找到想要下载的版本,点击Download后,下拉…

IntelliJ IDEA使用_常规设置

文章目录 版本说明主题设置取消检查更新依赖自动导入禁止import xxx.*、允许import内部类显示行号、方法分割线、空格代码提示(匹配所有字母)自定义注释颜色添加头部注释自定义字体设置字符编码关联本地GitJDK编译版本Maven配置Tomcat配置代码注释设置头…

PSP - 蛋白质序列提取 Transformer 蛋白质语言模型 ESM2 特征

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132888139 蛋白质语言模型 ESM (Evolutionary Scale Modeling) 是一种利用深度学习技术来预测蛋白质结构和功能的方法。ESM 通过在大规模的蛋白质…

LLFormer 论文阅读笔记

Ultra-High-Definition Low-Light Image Enhancement: A Benchmark and Transformer-Based Method 这是南京大学在AAAI 2023发表的一篇AAAI2023 超高清图像暗图增强的工作。提出了一个超高清暗图增强数据集,提供了4K和8K的图片,同时提出了一个可用于暗图…

excel功能区(ribbonx)编程笔记--3 editbox与状态按钮togglebutton控件

从上次发布编程笔记2后,反响还不错,短短一个星期,访问量就达到了1500,说明虽然这个只是有写古老,但是再实际的工作中,excel的编程功能还是有或多人关注的,还不是很小众,比如我就是平时的统计就是使用excle,为了更好的实现自动统计,会添加部分vba代码到里面,就像我的…

【力扣每日一题】2023.9.13 检查骑士巡视方案

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个n*n大小的矩阵,矩阵的元素表示骑士已经行动的次数,问我们骑士能不能按照矩阵里元素顺序来巡视整个…