文件流 之 字节流 FileInputStream、FileOutPutStream

时间:2024-4-21    作者:老大夫    分类: JAVA


如果我们读取或写出的数据是非文本文件,则Reader、Writer就无能为力了,必须使用字节流。

注意: 字符流只能处理文本文件,字节流可以处理非文本文件,也可复制文本文件的复制,其他操作可能会出现乱码。

说明:
文本文件:.txt、.java、.c、.cpp、.py等
非文本文件:.doc、.xls、.jpg、.pdf、.mp3、.mp4、.avi 等

1. 使用说明

  1. 创建File对象
File file = new File("face.png");
File newFile = new File("face_copy.png");
  1. 创建IO流
FileInputStream fis=new FileInputStream(file);
FileOutputStream fos=new FileOutputStream(newFile);
  1. 数据的读入和写出
    byte[] cBuffer = new byte[5];
    int len;
    while((len=fis.read(cBuffer))!=-1){
    fos.write(cBuffer);
    }
  1. 关闭资源
 fos.close();
 fis.close();

2. 举例

/**
     * 需求复制face.png为face_copy.png
     */

    @Test
    public void test01(){
        File file =null;
        File newFile=null;
        FileInputStream fis=null;
        FileOutputStream fos=null;

        try {
            file = new File("face.png");
            newFile = new File("face_copy.png");

            fis = new FileInputStream(file);
            fos = new FileOutputStream(newFile);

            byte[] cBuffer = new byte[5];
            int len;
            while((len=fis.read(cBuffer))!=-1){
                fos.write(cBuffer);
            }

            System.out.println("复制成功");
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            try {
                if (fos!=null){
                    fos.close();
                }
                if (fis!=null){
                    fis.close();
                }
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }

版权所有:伸手党盘
文章标题:文件流 之 字节流 FileInputStream、FileOutPutStream
文章链接:https://ssdpan.cn/?post=397
本站文章均为原创,转载文章会标注转载地址,仅供学习使用,未经授权请勿用于任何商业用途

推荐阅读:


扫描二维码,在手机上阅读