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()方法可以直接将对象保存到输出

流中。

相关推荐
oscar9992 小时前
OpenCode Go :为开放编码模型准备的低价订阅方案
开发语言·后端·golang
.千余2 小时前
【Linux】开发工具2:vim
linux·服务器·开发语言·学习
SWAGGY..2 小时前
【C++初阶】:(10)vector的使用及模拟实现
开发语言·c++
所愿ღ2 小时前
SSM框架-Spring2
java·开发语言·笔记·spring
Flittly2 小时前
【SpringSecurity新手村系列】(6)基于角色的权限控制、权限拦截注解与自定义无权限页面
java·spring boot·安全·spring·安全架构
故事还在继续吗2 小时前
C++11关键特性
开发语言·c++·算法
格林威2 小时前
面阵相机 vs 线阵相机:堡盟与Basler选型差异全解析 +C++ 实战演示
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
zzzsde2 小时前
【Linux】线程概念与控制(2)线程控制与核心概念
linux·运维·服务器·开发语言·算法
白夜11172 小时前
C++(不适合使用 CRTP情况)
开发语言·c++·笔记