io流-字节流

1 fileInputStream

1 创建方法

io流-字节流_第1张图片
第二个方法用的比较多一点,因为不用再new FIle,比较方便

2 读取fileInputStream

io流-字节流_第2张图片

1 文件字节输入流:每次 读取一个字节

read()
缺点:
一次读取一个字节,调用一次方法就调用一次系统资源,浪费资源
读取中文会乱码

写完之后记得关闭系统资源

2 文件字节输入流:每次 读取多个字节

用reda(byte[]buffer)
io流-字节流_第3张图片
优化:使用循环改造
io流-字节流_第4张图片

3 文件字节输入流:一次性读取全部字节

io流-字节流_第5张图片

io流-字节流_第6张图片

io流-字节流_第7张图片
io流-字节流_第8张图片
唯一缺陷:
会抛出异常
io流-字节流_第9张图片

2 fileOutputStream

  • 文件字节输出流:写字节出去

1. 写入一个字节

//1 创建一个字节输出流管道与目标文件接通,参数里面的文件会自动创建

         FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\接单\\企业资质与分析系统\\zzgl-all-master\\credential-all-master\\credential\\src\\main\\java\\com\\ruoyi\\heima\\itheima2.txt"));

        //'b'也是一个字节
        fileOutputStream.write(97);
        fileOutputStream.write('b');
        //这个会乱码,系统用的utf-8.所以这个磊有3个字节,但是write方法默认只能写一个字节
       // fileOutputStream.write('磊');

2. 写如多个字节

//一次性写入多个字节
        fileOutputStream.close();
         byte[] bytes = "我爱你中国".getBytes();
         fileOutputStream.write(bytes);

3. 写如指定长度到文件

fileOutputStream.write(bytes ,0,15);

每次写得时候都会把
重启程序都会把原来的数据删除掉
这个和文件字符输出流对象的创建方式有关
io流-字节流_第10张图片

io流-字节流_第11张图片
FileOutputStream fileOutputStream = new FileOutputStream(new File(“D:\接单\企业资质与分析系统\zzgl-all-master\credential-all-master\credential\src\main\java\com\ruoyi\heima\itheima2.txt”,true));

换行
使用这个可以兼容更多平台
”\r\n“

os.write(“\r\n”,getBytes());

最后,记得关闭系统资源

3 案例,文件复制

这个很重要
io流-字节流_第12张图片

        File file = new File("C:\\Users\\yan\\Pictures\\4.jpg");
        //复制照片
        //1. 创建一个字节输入流管道与源文件接通
        InputStream inputStream = new FileInputStream("C:\\Users\\yan\\Pictures\\4.jpg");

//2 创建一个字节输出流与目标文件接通
        OutputStream outputStream = new FileOutputStream("C:\\Users\\yan\\Pictures\\4.1.jpg");

//创建一个字节数组,负责转移字节数据
        byte buffer[] = new byte[1024];

        //从字节输入流中读取字节数据,写到字节输出流中,读多少写出去多少
        int len;
        while ((len=inputStream.read(buffer))!=-1){
            outputStream.write(buffer,0,len);

        }
//5 关流
        outputStream.close();
        inputStream.close();

io流-字节流_第13张图片

你可能感兴趣的:(java)