• 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(瞬时)关键字  表示敏感信息,关闭序列化,不会被记录。

  • 相关阅读:
    Installshield 添加应用程序到防火墙例外
    服务器表导入到本地数据库SQL语句
    【转】13个JavaScript图表(JS图表)图形绘制插件
    【转】20个简化开发任务的 JavaScript库
    【转】8 个效果惊人的 WebGL/JavaScript 演示
    【转】JavaScript 3D图表
    VMware显示错误:“未能锁定文件 无法打开磁盘 ..*.vmdk 或者某一个快照所依赖的磁盘。”解决办法
    Spring HTTP invoker简介
    【转】在Ubuntu下建立Eclipse的Android开发环境
    【转】在NetBeans上搭建Android SDK环境
  • 原文地址:https://www.cnblogs.com/Comet-Fei/p/11885212.html
Copyright © 2020-2023  润新知