流概述:
概念:流是数据传输的总称
分类:(读)输入流(从硬盘当中读取数据) (写)输出流(从内存中根据程序写出数据)
工作方式:字节流 字符流 字节流是万能的
字节流每次的工作单元是以字节为单位的
中文读写用字符流
使用字节流写出数据 InputStream 字节输入流 OutputStream 字节输出流 这两个都是抽象类
java.io包下
子类名特点:子类名称都是以其父类名作为子类名的后缀
子类:FileOutputStream:作用:将数据写入文件
构造方法
FileOutputStream(String name)创建文件输出流以指定的名称写入文件 String name是文件路径 写第一种比较方便 因为底层默认帮你做了第二种构造方法做的事
FileOutputStream(File file)创建文件输出流写入由指定的 File对象表示的文件
创建文件输出流做了什么?
1.调用系统功能创建了文件
2.创建了字节输出流对象
3.让字节输出流对象指向创建好的文件
他的方法
1.write(int b) 将指定的字节写入此文件输出流
IO操作 不在控制台显示
write(97);//a 存入文件的是字符
所有跟IO相关的操作最后都要释放资源
close() 关闭此文件输出流并释放与此相关联的任何系统资源!!!
使用字节输出流写数据的步骤
创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件)
调用字节输出流对象的写数据方法
释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)
字节流中写数据的三种方法
write(int b)将指定的字节写入此文件输出流 一次写一个字节数据
write(byte[] b)将b.length字节从指定的字节数组写入此文件出输出流 一次写一个字节数组数据
write(byte[] b,int off,int len)将len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流(off代表从哪个索引开始 len代表写几个)
一次写一个字节数组的部分数据
简单的方式得到一个字节数组
String 类中的一个方法 getBytes() 返回字符串对应的字节数组
字节流写数据的两个小问题
字节流写出换行和文件续写
换行:不同的操作系统的换行符号是不同的
window:\r\n
linux:\n
mac:\r
write("\r\n".getBytes())
文件续写(追加写)
创建对象的时候告诉它 我这个字节输出流是追加写入的
构造方法
FileOutputStream(String name,boolean append)
创建文件输出流以指定的名称写入文件
如果第二个参数为true,则字节将写入文件的末尾而不是开头
字节流写数据同时处理异常
finally:在异常处理是提供finally块来执行所有清楚操作,比如说IO流中的释放资源
特点:被finally控制的语句一定会执行,除非JVM退出
try{
|
|