程序员

javaIO流---节点流的重要方法

2020-05-02  本文已影响0人  一花一世界yu

一、重点知识

getname获得的是文件名

getpath()获得你开始定义时声明的文件路径

字节流是一个最根本的流,数据的本质就是以字节为单位存储的

四个读写流基类都是抽象得

只有空文件夹才可以直接删,文件夹里面有空文件夹他也算有文件

进行遍历操作时,你要想好迭代的条件能否满足获得每一个文件和文件名这个目的

read(byet[])返回的为实际读入的数据量,一旦读不到数据了,就返回-1

流中的数组读入数据进行的是覆盖操作,新读入的数据,覆盖原来的数据

avaliable()计算还有多少个字节未读

skip(long)跳过多少个字节读

节点流每次写入数据,都会重新在开头位置写入

输出流写出换行“\r\n”

输出流写出文件时如果文件不存在那么会自动创建,但文件夹不存在会报错,找不到此路径

fileoutputstream用构造方法带boolean append得可以不覆盖在文件末尾添加数据

二、重点问题

1、向文件中写数据的时候,如果文件不存在,能写吗?如果文件所在的文件夹不存在,能写吗?

如果文件不存在,FileOutputStream在写出数据的时候,会先创建文件,再写出。

但是如果文件夹不存在,那么就报错。(java.io.FileNotFoundException: C:\Ruby\pro\aa\bb\abc.txt (系统找不到指定的路径。)

2、能不清空的写,在最后添加

FileOutputStream(path)-->开头写

FileOutputStream(path , append-->true)-->末尾写

三、课堂知识

3.1、4大基类流

InputStream,字节输入流:抽象的

OutputStream:字节输出流:抽象的

Reader:字符输入流:抽象的

Writer:字符输出流:抽象的

3.2、IO流的操作步骤

step1:确定数据从哪到哪。文件信息。

step2:创建流:

流向:输入,输出

单位:字节,字符

子类流:文件,内存

step3:操作流

读取数据:输入

read()

写出数据:输出

write()

step4:关闭流

close()

3.3、FileInputStream

用于以字节为单位,读取文件中的数据,到程序中。

1、构造方法:

FileInputStream(String name)

通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名。

FileInputStream(File file)

通过打开与实际文件的连接创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名。

read()-->int

每次读取一个字节。返回值就是读入的数据本身。如果读到文件的末尾了,-1。

read(byte[] bs)-->int

每次读取多个字节,最多是bs数组的长度个。返回值是本次读取的实际的字节个数。如果到达末尾,-1.

int read(byte[] bs, int off, int len)

从该输入流读取最多 len字节的数据为字节数组 。第一个参数表示要存储本地读取的数据的数组,第二个参数,表示从哪个下标开始存储,第三个参数是表示本次读取预计的读取数量。该方法的返回值是本次读取的实际数量。如果到达文件末尾,-1。

3.4、FileOutputStream

构造方法:

FileOutputStream(String name) ,在文件开头写,

创建文件输出流以指定的名称写入文件。

FileOutputStream(String name, boolean append) ,在文件的末尾写数据,追加

创建文件输出流以指定的名称写入文件。

FileOutputStream(File file) ,在文件开头写,擦除写

创建文件输出流以写入由指定的 File对象表示的文件。

FileOutputStream(File file, boolean append) ,在文件的末尾写数据,追加

创建文件输出流以写入由指定的 File对象表示的文件。

写出去的数据,是清空写。将文件中原来的数据全部擦除,从头开始写数据。

void write(int data),将参数,这个字节数据写出去

void write(byte[] b),将 b.length个字节从指定的字节数组写入此文件输出流。

void write(byte[] b, int off, int len) ,将 len字节从位于偏移量 off的指定字节数组写入此文件输出流。


上一篇下一篇

猜你喜欢

热点阅读