Java——IO

目录

File类

Fiel类的常用方法和说明:

输入及输出的概念

流的分类

字节流

InputStream的基本方法:

字符流

节点流与处理流

处理流中常用类

对象序列化--反序列化


File类

File类是java.io包中很重要的一个类。它既可以表示文件,还可以表示目录,在程序中一个File类兑现可以代表一个文件或目录。

File对象可以对文件或目录的属性进行操作,如:文件名、左后修改日期、文件大小等。

Fiel对象无法操作文件中的具体数据,即不能直接对文件进行读、写操作。

Fiel类的常用方法和说明:

1.boolean exists判断文件是否存在,存在就返回true,否则就返回false。但是他的定义的返回值我们并不常用,因为我们需要判断一个文件不存之后对文件进行创建,这个时候返回的false不能进入if只能再创建一个else比较麻烦,所以我们就用到了!非运算符,将false转换成true。

2.boolean isFile判断是否是一个文件,是返回true,不是返回false。

3.boolean isDirectory判断是否为文件夹,是就返回true,不是就返回false。

4.String getName返回文件的名称

5.long length获得文件的长度(字节数)。

6.boolean creatNewFile创建新的文档,成功就返回true,否则返回false,有可能抛出IOException异常,必须捕捉

7.boolean mkdir,创建一个新的文件夹。

8.boolean delete删除文件,删除成功返回true,否则返回false。

9.public String\[\] list将目录即文件的名字,返回到String数组中。

10.public File\[\] listFiles将文件夹的子文件夹和文件返回到File数组中。 //他们都只能返回下一级的文件,想要全部返回只能使用递归。

isDirectory判断是不是一个文件夹。

exists判断文件是否存在

list返回给定目录的所有的子集。返回String类型的数组。但是只能往下找一级。想要接着往下找还需要一些力气和手段。

输入及输出的概念

把电脑硬盘上的数据读到程序中,称为输入,即input,进行数据的read操作,从程序往外部设备写数据,称为输出,即output,进行数据的write操作。

输入和输出的标准是对于程序来说的,进入到程序内叫输入,从程序中出去叫输出。

流的分类

在java语言中提供了许多可以进行读和写操作的类,我们把这些类叫做流。

从数据流编码格式上划分为:

字节流(byte)

字符流(char)

他们的区别就是:字符流读取时以字符为单位,读取txt和java这种纯文本文档,因为字符流在进行转换的时候会对文件中的字节转换成字符。而字节流可以读取任意文件。

流按照数据的传输方向分为:

输入流:往程序中读叫输入流。

输出流:从程序中文往外写叫输入流。

字节流

InputStream和OutputStream的子类都是字节流,可以读写二进制文件,主要处理音频,图片,歌曲,字节流处理单元为1个字节。

字节流中常用类:

字节输入流 FileInputSteam

字节输出流 FileOutputStream

InputStream的基本方法:

int read()读取一个字节并以整数的形式返回(0~255)。如果返回-1就表明已经到输入流的末尾

int read(byte\[\] buffer) 读取一系列字节并存储到一个数组buffer,返回实际读取的字节数,如果读取前已经到输入流的末尾则返回-1

void close()关闭流释放内存资源

OutputStream的基本方法:

void write (int b)向输入流中写入一个字节数据,该字节数据为参数b的低8位。

void write (byte\[\] b,int off, int len)将一个字节类型的数组中的从指定位置开始的len个字节写入到输出流。

void close()关闭流释放内存资源。

字符流

Reader和Writer的子列都是字符流,只要处理字符或者字符串,字符流处理单元为一个字符。字节流将读取到的字节数据,去指定的编码白哦中获取对应文字字符。

字符流只能读取纯文本文件

字符流中常用类:

字符输入流:FileReader

字符输出流:FileWriter

Reader的基本方法

int read()读取一个字符并以整数的形式返回,如果返回-1已经到输入流的末尾

int read(char\[\] cbuf) 读取一系列字符并存储到一个数组buffer,返回实际读取的字符数,如果读取前已到输入流的末尾,返回-1

void close() 关闭

Writer的基本方法

void write(int c)向输出流中写入一个字符数据,该字节数据为参数b的16位。

void write (char\[\] cbuf, int off set, int length)将一个字符类型的数组中的从指定位置开始的length个字符写入到输出流。

void close()关闭

节点流与处理流

根据封装类型不同流又分为

节点流,处理流

节点流:

如果流封装的是如文件,字符串,字符串数组等,则称为节点流

处理流:

如果封装流装的是其他流对象,称为处理流。处理流提供了额外功能

处理流中常用类

缓冲字节输出流 BufferedOutputStream

缓冲字节输入流 BufferedInputStream

数据输出流 DataOutputStream

数据输入流 DataInputStream

缓冲字符输出流 BufferedWriter

缓冲字符输入流 BufferedReader

对象序列化--反序列化

对象的寿命通常随着生成该对象的程序的终止而终止。 有时候,可能需要

将对象的状态保存下来,在需要时再将对象进行恢复。

对象的输入输出流 :

主要的作用是用于写入对象信息与读取对象信息。 对象信息 一旦写到文件

上那么对象的信息就可以做到持久化了.

对象的输出流:ObjectOutputStream

对象的输入流:ObjectInputStream

在ObjectInputStream 中用readObject()方法可以直接读取一个对象,

ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出

流中。

相关推荐
Scott9999HH2 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
腻害兔2 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社3 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海3 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖4 小时前
JDK 26 新特性详解
java·开发语言
马优晨5 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区7 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大7 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai7 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
维天说7 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json