【笔记:Java IO流】

Java 学习笔记:注解、泛型与 IO 流 本文系统讲解了Java三大核心技术:注解、泛型和IO流。第一部分介绍注解的概念、自定义方法及内置注解的使用;第二部分详细解析泛型语法、通配符与上下限规则,以及常见应用场景;第三部分讲解IO流的分类(字节流/字符流)、文件操作及经典示例。文章最后提出三个思考题,涉及注解与反射的依赖注入实现、泛型擦除原理及NIO优势分析。全文涵盖基础语法到实际应用,适合Java开发者系统学习这些核心特性。 阅读详情

常用文件操作

创建文件的相关构造器

  • new File(String pathname) //根据路径构建一个File对象
  • new File(File parent, String child) //根据父录文件 + 子路径构建
  • new File(String parent, String child) //根据父目录 + 子路径构建

方法:**createNewFile()**创建新文件

获取文件的相关信息的常用方法

  • getName //获取文件名
  • getAbsolutePath //获取绝对路径
  • getParent //父级目录
  • length //文件大小(字节)
  • exists //是否存在这个文件
  • isFile //是否为文件
  • isDirectory //是否为目录(在Java编程中,目录也被当做文件)

目录的操作和文件删除

  • mkdir创建一级目录
  • mkdirs创建多级目录
  • delete删除空目录或文件

流(stream)的分类

  • 按操作数据单位的不同分为:字节流(8 bit),字符流(按字符)
  • 按数据的流向不同分为:输入流、输出流
  • 按流的角色不同分为:字节流、处理流/包装流
(抽象基类)字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

Java的IO流共涉及40多个类,实际上非常规则,都是从如上4个抽象基类派生的

由着4个类派生的子类名称都是以其父类名作为子类名后缀

IO流体系常用的类

InputStream抽象类是所有类字节输入流的超类

InputStream常用的子类

  • FileInputStream:文件输入流

image.png

  • BufferedInputStream:缓冲字节输入流
  • ObjectInputStream:对象字节输入流

OutputStream常用子类

  • FileOutputStream:文件输出流

image.png

FileReader和FileWriter

  • FileReader和FileWriter都是字符流,按照字符来操作IO

  • FileReader相关方法:

    • new FileReader(File/String)
    • read:每次读取单个字符,返回该字符,如果到文件末尾返回-1
    • read(char[]):批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回-1

    相关API:

    • new String(char[]):将char[]转换为String
    • new String(char[],off,len):将char[]指定部分转换为String
  • FileWriter相关方法:

    • new FileWriter(File/Writer):覆盖模式,相当于流的指针在首端
    • new FileWriter(File/Writer,true):追加模式,相当于流的指针在尾端
    • write(int):写入单个字符
    • write(char[]):写入指定数组
    • write(char[],off,len):写入指定数组的指定部分
    • write(String):写入整个字符串
    • write(String,off,len):写入字符串的指定部分

    相关API:

    • String类:toCharArray 将String转化为char[]
  • 注意:FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定文件

节点流和处理流

节点流可以从一个特定的数据源读写数据,如FileReader、FileWriter

处理流(也叫包装流)是“连接”在已存在的的流(节点流或处理流)之上,为程序提供更为强大的读写功能,如BufferedReader、BufferedWriter

字节流字符流一览

image.png

节点流与处理流的区别与联系

  • 节点流是底层流/低级流,直接跟数据源相接
  • 处理流包装字节流,既可以消除不同字节流的实现差异,也可以提供更方便的方法来完成输入输出
  • 处理流对节点流进行了包装,使用了修饰器设计模式,不会直接与数据源相连

处理流的功能主要体现在以下两个方面:

  • 性能的提高:主要以增加缓冲的方式来提高输入输出的效率
  • 操作的便捷:处理流可提供一系列便捷的方法来一次输入大批量的数据,使用更加灵活方便

Properties类

  • HashTable下的一个子类

  • 专门用于读写配置文件的集合类

    • 配置文件格式:

      键=值

      键=值

  • 注意:键值对不需要有空格,值不需要用引号,默认类型为String

常用方法:

  • load:加载配置文件的键值对到Properties对象中
  • list:将数据显示到指定设备
  • getProperty(key):根据键获取值
  • setProperty(key,value):设置键值对到Properties对象
  • sotre:将Properties中的键值对存储到配置文件,在idea中,保存信息到配置文件,如果含有中文,会存储为Unicode码

Unicode码查询工具

Java中的IO流详细笔记 IO流(Input/Output Stream)是Java中用于处理输入和输出数据传输的抽象概念。它将数据的传输过程形象地比喻为"流水",数据如同水流一样从一个位置流向另一个位置。IO流体系| |字节流 字符流| || | | | 阅读详情

相关推荐

Qi标准无线充学习笔记

负载调制主要通过接收端向后散射调制计数使得功率信号改变,两者通过线圈的电压和电流的变化量来传输信号。下面是要求稳定电流的变化量不得超出8ma,判断稳定的时间至少要在150us稳定电压的变化量不得超出110mv,判断稳定的时间至少要在150us高低电流变化量至少需要15mA,判断稳定的时间至少要在100us,主线圈电流采样的时间是在半桥转换的1/4周期刻测量的高低电压变化量至少需要200mV,判断稳定的时间至少要在100us。

m0_73991989的博客 1011

javaIO流

javaIO流学习笔记,有代码.请大家多多提出不足

qq_58267473的博客 632

STM32 IAP跳转后APP卡死?别慌,手把手教你修复HAL_RCC_OscConfig时钟配置冲突

本文深入分析了STM32 IAP跳转后APP在HAL_RCC_OscConfig函数中卡死的问题,揭示了PLL时钟配置冲突的根本原因。通过详细的代码示例和分步解决方案,指导开发者正确处理STM32F1/F4系列的时钟系统二次初始化问题,确保IAP+APP架构的稳定运行。

weixin_28685287的博客 365

【Java IO流】IO流的分类

IO流的分类 按操作数据单位不同分为:字节流(8 bit),字符流(16 bit) 按数据流的流向不同分为:输入流,输出流 按流的角色的不同分为:节点流,处理流 抽象基类 字节流 字符流 输入流 InputStream Reader 输出流 OutputStream Writer Java的IO流共涉及40多个类,实际上非常规则,都是从如下4个 抽象基类派生的。 由这四个类派生出来的子类名称都是以其父类名作为子类名后缀 IO 流体系 ...

码农翻身的博客 356

计量经济学(因果关系探究-空间双重差分模型: 破解空间溢出效应的因果分析工具)

本文介绍了传统双重差分(DID)模型及其局限性,重点阐述了空间DID模型的必要性。传统DID通过组间差分分离干预效应,但无法处理空间溢出效应。空间DID模型引入空间计量方法,包括三种类型:空间自回归模型(SDID-SAR)捕捉因变量溢出,空间误差模型(SDID-SEM)处理残差相关性,空间杜宾模型(SDID-SDM)同时考虑因变量和自变量的空间滞后。模型选择需结合空间相关性检验,适用于环境政策、房地产限购等存在空间交互效应的研究场景。

YBAdvanceFu的博客 2033

Dual-stream multiple instance learning networks for tumor detection in Whole Slide Image——论文笔记

关于多示例学习的资料网上比较少,但是在医学图像方面还是有人在应用的。主要是因为一般比较大,几个G都是十分常见的,这么大图片是无法直接训练,一般都会进行切图,所以天然契合多示例学习bag和instance的概念。最近看了一篇论文刚好关于这方面的,所以做下笔记。 github地址:https://github.com/binli123/dsmil-wsi paper:https://arxiv.org/abs/2011.08939 背景知识 在多示例学习(MIL)中,一组训练样本被视为包含多个instance的

weixin_41693877的博客 4170

Java——IO流(IO流原理及流的分类)

IO流(IO流原理及流的分类) 前提知识 File类 Java IO原理 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于处理设备之间的数据传输。如读/写文件,网络通讯等。 Java程序中,对于数据的输入/输出操作以“流(stream)” 的方式进行。 java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。 我们是需要把我们放在程序的位置上,来区分到底是输出还是输入。 流的分类 按操作数据单位不同分为:字节流(8 bit),字

xiangqian0721的博客 351

使用 NTLite 来定制专属的官方 windows 镜像

移除掉不想要的一些自带的应用,比如 Xbox,office 啥的,这个就根据自己的实际需求来选择,备注基本都是有解释这个应用的作用。win 11 的右键展示不喜欢,更喜欢 win10 的,但是需要修改注册表,这里直接把下面的命令写到后期任务里面。NTLite 的自动保存会话功能会保留操作过的配置,是一个 xml 文件,可以在下次升级镜像版本的时候,导入配置。关闭 windows defender,不关会有这个提示,点是,就会跳到对应的界面。勾选创建 iso,配置 iso 镜像的名字,然后点开始。

以梦为马|越骑越傻 3336

Java IO流学习笔记

IO流,File,字节流,字符流,缓冲流

2402_87028704的博客 641

Serial RapidIO Gen2 IP 说明(三)

前言 继续接着上篇文章,介绍Serial RapidIO Gen2 IP 的具体端口信息。 一、端口描述 1、缓冲设计接口 2、物理层接口 参考说明 【1】Serial RapidIO Gen2 v4.1https://china.xilinx.com/content/dam/xilinx/support/documentation/ip_documentation/srio_gen2/v4_1/pg007_srio_gen2.pdf ...

记录所学,分享知识,结识挚友 1322

【毕业设计之python系列】基于Flask的在线音乐网设计与实现

本论文旨在通过使用Python的Web框架Flask,设计和实现一个具有完整功能的在线音乐网站。该网站包括用户注册、登录、注销、歌曲上传、编辑、删除、歌单创建、编辑、删除、评论、搜索、音乐播放等功能,并针对不同用户角色(如普通用户、管理员)实现了不同的权限管理。同时,本论文还介绍了如何使用第三方API(如网易云音乐API)获取歌曲信息等技术实现。在设计上,本论文采用了MVC(Model-View-Controller)架构模式,将后端数据处理与前端展示分离,以便于代码的管理和维护。在数据库设计方面,本论文设

m0_56073435的博客 3246

【Java笔记】第15章:IO流

期待您的一键三连!欢迎指正!

Guiat的博客 715

TIA博途中通过UDT实现IO地址映射到DB块中的具体方法

TIA博途中通过UDT实现IO地址映射到DB块中的具体方法

Robot_PLC_HMI_Automation 1万+

Java学习笔记之IO流

1)定义路径2)创建文件类File file = new File("filepath");3)文件类常用方法:file.exists判断文件是否存在file.mkdir创建目录file.createNewFile创建新文件。

hssh_的博客 676

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JAVA IO流学习笔记

JAVA IO流学习笔记

康康要加油的博客 347

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java学习笔记-IO流

存储和读取数据的解决方案。作用:IO流用于读写文件中的数据,

qq_45773654的博客 1250

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java笔记(Stream、File、IO流、字符集、编码解码)

Java笔记(Stream、File、IO流、字符集、编码解码)

LLM | Agent | RAG | Java 2479

Java学习笔记——IO流

IO流的作用:读写文件数据。

weixin_44456914的博客 2108

JAVA基础学习笔记-day15-File类与IO流

File类及本章下的各种流,都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。File对象可以作为参数传递给流的构造器。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。

天才在左,疯子在右,而我只想做个不折不扣的乐天派 1169

java学习笔记13——IO流

总结:1.File类的理解> File类位于java.io包下,本章中涉及到的相关流也都声明在java.io包下> File类的一个对象,对应与操作系统下的一个文件或一个文件目录(或文件夹)> File类中声明了新建、删除、获取名称、重命名等方法,并没有涉到文件内容的读写操作。要想实现文件内容的读写,我们就需要使用io流。> File类的对象,通常是作为io流操作的文件的端点出现的。> 代码层面,将File类的对象作为参数传递到IO相关类的构造器中。2.内部api使用说明。

qq_58956810的博客 1029

Java IO流学习笔记(基础)

前者以字节 byte 为单位(根据bit),后者以字符 character 为单位(根据字符集)综合起来,按输入、输出、字节、字符四个特点来分类的话,就有四个“祖宗”(基类/超类)四大流的分类表格输入流输出流字节流字节输入流 InputStream字节输出流 OutputStream字符流字符输入流 Reader字符输出流 Writer它们发展来的“子孙后代”多可以见到其名字的“祖宗”名后缀。

2301_76632538的博客 399

java IO流笔记分享

store:将Properties中的键值对存储到配置文件,在idea中,保存信息到配置文,如果含有中文。注意 :FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定的文件。处理流(也叫包装流)是连接再已存在的流(节点或处理流)之上,为程序提供更为强大的读写功能,也更加灵活。read(char[]):批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回-1。按操作数据单位不同分为:字节流(8 bit)、字符流(按字符,对应几个字节)文本文件。

weixin_70139631的博客 949

Java笔记 IO流

IO流一、File类的使用1.File类的使用2.File类中的常用方法二、IO流原理及流的分类1.IO流的原理2.流的分类三、文件流1.FileReader读取数据的步骤:2.读入数据总结 一、File类的使用 1.File类的使用 File类的使用 ①File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹) ②File类声明在java.io包下 ③File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内

weixin_43935207的博客 788

【Java学习笔记】IO流

文件流:文件在程序中是以流的形式来操作的流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存)的路径输出流:数据从程序(内存)到数据源(文件)的路径参数为一个File对象通过使用文件描述符 fdObj 创建一个 FileInputStream,该文件描述符表示到文件系统中某个实际文件的现有连接。通过打于到实际文件的连接来创建FileInputstrean,该文件通过文件系统中的路径名 name 指定。传入一个 File 对象创建文件输出流。

2401_88623584的博客 1018
上一篇: 【笔记:Java线程/常用方法】
下一篇: 【Lambda表达式】
莱布尼杰
博客等级 码龄9年 3粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值