文件、字节流的使用

文件类型统计

文件复制

目录复制

字节流的使用 intputstream outputstream

输入流 intputstream,用于读取文件

输出流 outputstream ,用于写入文件

写入文件时,获得字节的整形类型进行存储

字节流实现文件复制

BufferInputstream 和BufferOutstream,提高缓存速度

 try(var is =new BufferedInputStream(new FileInputStream("21.txt")); var
                  os= new BufferedOutputStream(new FileOutputStream("ok.txt")))

自建缓存类型对文件进行输入输出

文件拷贝

设置的缓存内存要适量,太大和太小会造成读取时间的加长,官方默认的是8KB。

  public static void main(String[] args) {
        try (var is = new FileInputStream("off.jpg"); var os = new FileOutputStream("ss.jpg")) {
            //以8kb的缓存对文件的创建和复制
            long ss = System.currentTimeMillis();
            //设置初始值为8kb
            byte[] bs = new byte[1024*8];
            int len = 0;
            //判断len的字节长度,并将bs的内容输入到ss中
            while((len=is.read(bs))>=0){
                os.write(bs,0,len);
            }
            System.out.println(System.currentTimeMillis()-ss);

        } catch (Exception e) {
            //异常提醒
            e.printStackTrace();
        }

    }

在进行文件的添加操作时,使用OutputFile进行文件内容添加时,会进行内容覆盖,在后边加true时,会在文件内容最后进行添加操作

 //判断是不是同一个文件
    public static void main(String[] args) {
        //output这个属性会进行新加文件,会进行覆盖重写,在加true的情况下,进行添加操作
        try(var os= new FileOutputStream("ff1.txt",true)){
            os.write("hello世界\s\n".getBytes());

          }catch(Exception e){
            //异常提醒
            e.printStackTrace();
          }
    }

判断是不是同一个文件,主要是用于文件后缀的改变。生成固定的字符串类型判断文件类型。

进行固定字符串的生成:

    public static void main(String[] args) {
          String f = "off.jpg";
        /*  if (f.isEmpty()){

          }else {
                System.out.println(f);
          }
*/
        try(var is =new FileInputStream(f);){
            byte[] sd =new byte[5];
            is.read(sd);
            //重点代码
            StringBuilder sub = new StringBuilder();
            for(byte b :sd){
                sub.append(String.format("%x",b));
            }
            System.out.println(sub);
            //到此为止
            System.out.println(Arrays.toString(sd));
          }catch(Exception e){
            //异常提醒
            e.printStackTrace();
          }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值