zoukankan      html  css  js  c++  java
  • Java编程思想——标准 I / O

    将Syetem.out转换成PrintWriter

    标准I/O重定向: 控制台信息量大,滚动快,查看困难

        setIn(InputStream) setOut(...) setErr(...)

    新I/O库,提高速度; 方式:使用的结构更接近操作系统执行I/O的方式:通道和缓冲器。

        通道:包含数据的矿藏;缓冲器:运送数据的车; 屏蔽底层信息,封装耗时,适用于大型文件操作。

        唯一与通道交互缓冲器:ByteBuffer; FileInputStreamFileOutStreamRandomAccessFile 被改造产生FileChannel。

    文件加锁(针对大文件)

        tryLock(long position, long size, loolean shared)

        lock(long position, long size, boolean shared)

        //起始位置,大小,共享锁(视OS而定,有的有,有点没有),可通过FileLock.isShared()查询部分加锁后文件的变化。

    压缩:1. 文件大,通过压缩改变大小;2.文件多,通过压缩改变文件数量; 控制台操作 传入文件名参数。

        CheckedInputStream(或Output) 进行校验

        DeflaterOutputStream 压缩基类:GZipOutput/ZipOutputStream 压缩成GZIP/ZIP,Input 为解压。

        GZIP接口简单,适合单个数据流压缩。

        ZIP适合进行多文件保存,使用接口,ZipEntry(); putNextEntry();

            ZipOutputStream.setComment(String); 压缩文件备注

    档案文件 .JARs 跨平台压缩文件

        通过在Jar文件的manifest(文件清单)中定义一个main类就可以创建一个可执行的Jar文件。

    对象序列化  对象需要实现Serializable接口 (基于二进制自动处理)    

        create OutputStream object;  

        wrap in  a ObjectOutputStream object

        use writeObject() to serializable

        send to OutputStream

        在读的时候需要转型!(序列化:将实现S接口的对象转化为一个字节序列,并可以在以后恢复为原对象)

        特殊情况可以通过Enternalizable接口代替S实现控制。

        增添两个方法:writeExternal() 和 readExternal()

    寻找类 需要有class环境 才能还原序列化

    transient(瞬时)关键字  表示敏感信息,关闭序列化,不会被记录。

  • 相关阅读:
    react路由组件&&非路由组件
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    【LeetCode】65. Valid Number
    【LeetCode】66. Plus One (2 solutions)
    【LeetCode】68. Text Justification
    【LeetCode】69. Sqrt(x) (2 solutions)
    【LeetCode】72. Edit Distance
    【LeetCode】73. Set Matrix Zeroes (2 solutions)
    【LeetCode】76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/Comet-Fei/p/11885212.html
Copyright © 2011-2022 走看看