Java编程思想——标准 I / O

本文围绕Java展开,介绍了标准I/O重定向,可解决控制台信息查看困难问题;新I/O库通过通道和缓冲器提高速度,适用于大文件操作。还提及文件加锁、压缩、档案文件处理,以及对象序列化,包括实现接口、特殊情况处理和关键字使用等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将Syetem.out转换成PrintWriter

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

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

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

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

    唯一与通道交互缓冲器:ByteBuffer; FileInputStream\FileOutStream\RandomAccessFile 被改造产生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(瞬时)关键字  表示敏感信息,关闭序列化,不会被记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值