我的学习之路_第十章_IO流

IO流


I: input 输入,读取到内存
O: Output 输出,写入文件
流: 数据流(字符,字节)


输入: 字节输入流(FileInputStream),字符输入流(FileReader)
输出: 字节输出流(FileOutputStream),字符输出流(FileWriter)




【字节流】


OutputStream:字节输入流,是所有字节输入流ed父类


所属包:java.io包中




★:公共的成员方法:


abstract   返回值:void  write(int b) 写入一个字节
  返回值:void  write(vyte[] b) 写入一个字节数组 写入数据的时候,如果是整数,会查询ADCLL表,
如果是第一个是负数,第二个字节可以使正数,也可以使负数,查询的时候会把连个字节组成一个字节.
快速写入字节数组的方法:String类中有一个方法  返回值:byte[]      getBytes(String charseName) 把字符串转换为字节数组
  返回值:void  write(byte[] b,int off, int len) 写入字节数组,off是开始索引,len写几个
  返回值:void  close() 关闭此输出流并释放与此流有关的所有系统资源.




【FileOutputStream】文件字节输出流
作用:把内存中的数据,以字节的方式,写入到文件中.


构造方法:
FileOutputStream(File file) 创建一个向指定File对象表示的文件中写入数据的文件输出流
FilePutputStream(String name) 创建一个向具体指定名称的文件中写入数据的输出文件流


构造方法的参数: file:文件 name:文件的路径 都是写入数据的目的地


特点:如果构造方法中指定的文件或者文件的路径所指向的文件不存在,构造方法就会创建一个文件,
如果没有打开追加写的开关,文件已经存在,则会覆盖.


使用步骤:
1:创建一个字节输出流对象FileOutputStream,绑定数据的目的地
2:使用FileOutoutStream中的write方法,把数据写入到文件中.
3:释放资源.

流写入数据的时候,会找到JVM,JVM会调用系统本地哦的方法完成写,使用完 流要关闭和系统有关的资源(释放内存).




文件的续写和换行:


追加写:使用两个参数的构造方法
FileOutputStream(File file, boolean append) 
FileOutputStream(String name, boolean append) 
  参数:
  File file,String name:写入数据的目的地
  boolean append:追加写的开关,true:可以追加写(往之前的文件,继续写内容),fasle:不能追加写(覆盖之前的文件)




换行:要输入通用的换行符号


fos.write(System.getProperty("line.separator").getBytes());




【InputStream】字节输入流,是所有字节输入流的父类




成员方法:
返回值:int read():读取一个字节并返回,没有字节返回-1
返回值:int read(byte[]): 读取一定量的字节数,并存储到字节数组中,返回读取到的字节数
byte数组的作用:起到缓冲作用,一次可以往数组中缓冲多个字节,可以提高读取效率.
返回的int是每次读取的有效字节个数.


返回值:void close(): 关闭此文件输入流并释放与此流有关的所有系统资源




★ FileInputStream 文件字节输入流


作用:把文件中的数据,以字节的方式读取到内存中


构造方法:
FileInputStream(String name)
FileInputStream(File file)


参数:读取的哪个文件(数据源)


String name:字符串的文件路径
File file:读取的文件


使用步骤:
1.创建字节输入流对象FileInputStream,并且绑定数据源
2.使用FileInputStream对象中的方法read,读取文件
3.释放资源




【BufferedOutputStream】 字节缓冲输出流 extends OutputStream


字节缓冲输入流作用:给基本流早呢更加一个缓冲区,提高基本流的效率


继承了父类的公用的成员方法


构造方法:


BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输入流
参数:
OutputStream out: 字节输出流,可以使用FileOutputStream
参数传递时哪个字节输出流,就会给哪个字节输出流增加一个缓冲区,提高这个流的效率.


使用步骤:


1:创建FileOutputStream对象,绑定数据目的地
2:创建BufferedOutputStream对象,构造方法中传递FileOutputStream,提高FileOutputSteam效率
3:使用BufferedOutputStream中的方法,write,把数据写入缓冲区中
4:使用BufferedOutputStream中的flush,把缓冲区中的数据,刷新到文件中.(这里一定要刷新)
5:释放资源


【BufferedInputStream】字节缓冲输入流 extends InputStream
作用:给基本字节输入流增加一个缓冲区,提高基本字节输入流的效率


继承自父类的公共的成员方法


构造方法:
BufferedInputStream(InputStream in)  创建一个BufferedInputStream 并保存期参数,即输入流 in,以便将来使用.
参数:
InputStream in: 字节输入流,可以传递FileInputStream
参数传递的是哪个字节输入流对象,就会给哪个字节输入流对象增加一个缓冲区,提高该流的效率.


使用步骤:
1:创建FileInputStream对象,绑定数据源
2:创建BufferedInputStream对象,构造方法中传入FileInputStream,提高FileInputStream的读取效率.
3:使用BufferedInputStream中的方法 read,读取文件
4:释放资源


★ 总结:
字节流:操作的文件是非文本文件
字符流:操作的文件都是文本文件,一次读取一个字符,可以读取中文
文本文件:使用记事本打开,人能看懂的文件.

























































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值