(JAVA)IO1

IO流四个抽象及类
1.字节输出流,写入任意文件
    OutputStream
    write 字节数组 字节数组的一部分 单个字节
    close 释放资源
    flush  刷新资源,强制刷新资源
2.字节输入流,读取任意文件
    InputStream
    read 字节数组 字节数组的一部分 单个字节
    close 关闭资源
3.字符输出流 读取文本文件
    Write
    write 字符输出 字节数组的一部分 单个字符 写字符串
    flush 刷新内存,写完字符输出流必须强制刷新
    close 关闭资源
4.字符输入流 读取文本文件
    Reader
    read 字符数组 字符数组的一部分 单个字符
    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 catch
        try {
            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.调用子类对象写入方法。write
    3.关闭资源
    */
    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();
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值