Java中那些我不明白的小知识(六)--IO流(上)

  • 什么是IO流?

I:input 输入流;read 读取数据

O:output 输出流;write 写入数据

一般情况下都是按照道歉程序使用的内存作为参照物来考虑数据的走向问题。

以文件操作为例:

从内存中保存数据到硬盘  output

从硬盘中读取数据到内存 input

  • IO流基类:

InputStream 输入流基类;

OutputStream 输出流基类。

  • IO流的分类:

流向分类:输入输出

文件操作处理单元分类:字节流和字符流

FileInputStream:文件操作输入字节流

FileOutputStream:文件操作输出字节流

FileReader:文件操作输入字节流

FileWriter:文件操作输出字符流

  • 文件操作输入字节流

Constructor构造方法:

FileInputStream(File file);

这里是根据提供的File类对象创建对应的文件操作输入字节流

FileInputStream(String pathName);

这里是根据提供的String类型文件路径,创建对应的文件操作输入字节流

以上两个方法都会抛出异常:FileNotFoundException 文件未找到异常。

Method成员方法:

int read();

从文件中读取一个字节数据返回到方法外;虽然返回值是一个int类型,但是在整个int类型当中存储的数据是一个byte类型,有且只有低8位数据有效

int read(byte[] buf);

读取文件的内容是存储在byte类型数组中,返回值是读取到的字节个数

int read(byte[] buf , int offset , int count);

读取文件的内容实存储在byte类型数组中,要求byte数组offset位置开始,到count长度结束,返回值是读取到的字节个数

以上三个方法如果读取到未见末尾,返回值都是 -1 EOF End Of File

而且以上方法都需要异常抛出: IOException IO异常

  • 文件操作输出字节流

Constructor构造方法:

FileOutputStream(File file);

这里是根据提供的File类对象创建对应的文件操作输出字节流

FileOutputStream(String pathName);

这里是根据提供的String类型文件路径,创建对应的文件操作输出字节流

以上两个方法,创建的FileOutputStream是删除/清空写操作,会将原文家中的内容全部删除之后,写入数据

FileOutputStream(File file , boolean append);

根据File类对象创建对应的文件输出字节流对象,创建对象时给予append参数为true,表示追加写。

FileOutputStream(String pathName , boolean append);

根据String类型文件路径创建对应的文件输出字节流对象,创建对象时给予append参数为true,表示追加写。

FileOutputStream构造方法时拥有创建文件的内容,如果文件存在,不创建,文件不存在且路径正确,创建对应文件,否则抛出异常FileNotFoundException

Method成员方法:

void write(int b);

写入一个字节数据到当前文件中,参数是int类型,但是有且只会操作对应的第八位数据

void write(byte[] byf);

写入字节数组中的内容到文件中

void write(byte[] buf , int offset , int length);

写入字节数组中的内容到文件中,从指定的offset开始,到指定长度length

以上方法会抛出异常:IOException

未完待续.....
发布了9 篇原创文章 · 获赞 17 · 访问量 3000

猜你喜欢

转载自blog.csdn.net/weixin_42597414/article/details/104572505