IO流四个抽象及类
1.字节输出流,写入任意文件OutputStreamwrite 字节数组 字节数组的一部分 单个字节close 释放资源flush 刷新资源,强制刷新资源
2.字节输入流,读取任意文件InputStreamread 字节数组 字节数组的一部分 单个字节close 关闭资源
3.字符输出流 读取文本文件Writewrite 字符输出 字节数组的一部分 单个字符 写字符串flush 刷新内存,写完字符输出流必须强制刷新close 关闭资源
4.字符输入流 读取文本文件Readerread 字符数组 字符数组的一部分 单个字符close 关闭资源
package IODemo;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;/*** @author Alina* @date 2021年10月14日 9:58 下午*/
public class FileOutputStreamDemo {public static void main(String[] args) {/**** IO文件操作异常梳理* 文件是否被读取成功,都必须释放资源* close()写下finally下* 因为作用域的问题,finally无法识别到未命名的fos 所以必须将fos变成局部变量,在try外声明**/FileOutputStream fos = null;FileOutputStream fos2 = null;//开几个流对象就需要关闭多少流对象,在finally中添加try catchtry {fos = new FileOutputStream("src/IODemo/test.txt",true);fos2 = new FileOutputStream("src/IODemo/test.txt",true);fos.write("我爱你".getBytes(StandardCharsets.UTF_8));fos2.write("我爱你".getBytes(StandardCharsets.UTF_8));}catch (IOException e ){e.printStackTrace();//此处如果发生异常,无法处理,则让程序停止运行throw new RuntimeException("停止运行");}finally {try{if(fos!=null){fos.close();}}catch (IOException e ) {e.printStackTrace();throw new RuntimeException("关闭异常");}finally {try {if (fos2 != null) {fos2.close();}} catch (IOException o) {o.printStackTrace();throw new RuntimeException("关闭异常");}}}}/** 字节输出流写入文件实现步骤1.创建子类对象2.调用子类对象写入方法。write3.关闭资源*/public static void method_write() throws IOException {FileOutputStream fos = new FileOutputStream("/Users/yuzhang/Desktop/test.txt");//写入单个字节fos.write("abc".getBytes(StandardCharsets.UTF_8));//写入字节数组byte[] bytes= {100,101,102,103};fos.write(bytes);fos.write("你好".getBytes(StandardCharsets.UTF_8));fos.close();}/**** @author Alina* @date 2021/10/14 10:22 下午* 1.打开文本文件后,在文本文件中追加内容* 2.使用构造方法 写入参数true 表示追加* 2.如果想要在本类目录下创建文件,使用相对地址*/public static void method_write1() throws IOException{FileOutputStream fos = new FileOutputStream("src/IODemo/test.txt",true);fos.write("中国".getBytes(StandardCharsets.UTF_8));fos.close();}}