i:代表Input 输入(读取)
o:代表output 输出(写入)
流:数据(字符,字节)1个字符=2个字节
输入和输出是相对于电脑中 内存 与硬盘之间的说法
内存(临时存储):输出---把内存中的数据写入硬盘中保存
硬盘(永久存储):输入----把硬盘中的数据读取到内存中使用
上面四个都是抽象类,无法实例化对象,必须调用其子类
一.FileOutputStream:文件字节输出流
作用:把内存中的数据写入硬盘中
构造方法:
Fileoutputstream ( String name)创建一个向具有指定名称的文件中写入数据的输出文件流。
FileOutputStream(File file)创建一个向指定File对象表示的文件中写入数据的文件输出流。
参数:写入数据的目的
string name:目的地是一个文件的路径
File file:目的地是一个文件
构造方法的作用:
1).创建一个FiLeoutputstream对象
2).会根据构造方法中传递的文件/文件路径,创建一个空的文件
3).会把FiLeoutputStream对象指向创建好的文件
写入数据的原理(内存-->硬盘)
java程序-->3M(java虚拟机)-->oS(操作系统)-->os调用写数据的方法-->把数据写入到文件中
字节输出流的使用步骤(重点):
1.创建一个Fileoutputstream对象,构造方法中传递写入数据的目的地
2.调用FileoutputStream对象中的方法write,把数据写入到文件中
3.释放资源(流使用会占用一定的内存,使用完毕要把内存清空,提供程序的效率)
一次写多个字节的方法:
-public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流。
- public void write(byte[ ] b, int off, int len):从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。
追加写/续写:使用两个参数的构造方法
FiLeOutputStream(String name, boolean append)创建一个向具有指定name的文件中写入数据的输出文件流。
FileOutputStream(FiLe file, boolean append)创建一个向指定File对象表示的文件中写入数据的文件输出流。
参数:
string name , FiLe fiLe:写入数据的目的地
boolean append :追加写开关
true:创建对象不会覆盖源文件,继续在文件的末尾追加写数据
false:创建一个新文件,覆盖源文件
二.FiLeinputstream:文件字节输入流
作用:把硬盘文件中的数据,读取到内存中使用
构造方法:
FiLeInputstream( string name)
FileInputstream( File file)
参数:读取文件的数据源
string name:文件的路径File file:文件
构造方法的作用:
1.会创建一个FileInputStream对象
2.会把FileInputstream对象指定构造方法中要读取的文件
读取数据的原理(硬盘-->内存)
java程序-->JVM-->OS-->oS读取数据的方法-->读取文件
字节输入流的使用步骤(重点):
1.创建FiLeInputstream对象,构造方法中绑定要读取的数据源
2.使用FileInputStream对象中的方法read,读取文件
3.释放资源
三.java,io.Reader :字符输入流,是字符输入流的最顶层的父类,定义了一些共性的成员方法,是一个抽象类共性的成员方法:
int read()读取单个字符并返回。
int read(char[]cbuf)一次读取多个字符,将字符读入数组。
void close()关闭该流并释放与之关联的所有资源。
java.io.FileReader extends InputStreamReader extends Reader
FiLeReader:文件字符输入流
作用:把硬盘文件中的数据以字符的方式读取到内存中
构造方法;
FiLeReader( string fiLeName )
FiLeReader( File file)
参数:读取文件的数据源
string fileName :文件的路径
File file:一个文件
FiLeReader构造方法的作用:
1.创建一个FiLeReader对象
2.会把FiLeReader对象指向要读取的文件
四.java.io.writer :字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类共性的成员方法:
- void write(int c)写入单个字符。
- void write(char[i] cbuf)写入字符数组。
- abstractvoid write(char[ ] cbuf, int off, int len)写入字符数组的某一部分, off数组的开始索弓
,Len写的字符个娄女。
- void write(String str)写入字符串。
- void write(String str,int off, int len)写入字符串的某一部分, off字符串的开始索引, Len写的字符个数。
- void flush()刷新该流的缓冲。
- void close()关闭此流,但要先刷新它。
java.io.Filewriter extends outputstreamwriter extends writerFilewriter:文件字符输出流
作用:把内存中字符数据写入到文件中
构造方法:
Filewriter(File fiLe)根据给定的FiLe 对象构造一个 Filewriter 对象。Filelriter(String fileName)根据给定的文件名构造一个FiLewriter 对象。参数:写入数据的目的地
String fiLeName:文件的路径File file:是一个文件
构造方法的作用:
1.会创建一个FiLewriter对象
2.会根据构造方法中传递的文件/文件的路径,创建文件3.会把FiLewriter对象指向创建好的文件
五.
flush方法和close方法的区别
- flush :刷新缓冲区,流对象可以继续使用。
- close:先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。