Java编程思想——标准 I / O
将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(瞬时)关键字 表示敏感信息,关闭序列化,不会被记录。
Java编程思想——标准 I / O的更多相关文章
- Java编程思想(11~17)
[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第十一章 持有对象 11.1 泛型和类型安全的容器>eg: List<St ...
- Java编程思想(后)
Java编程思想(后) 持有对象 如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序. Java中的库基本类型: List, Set, Queue和Map --- 称为集 ...
- Java编程思想(前十章)
Java编程思想 有C++编程基础的条件下, 前10章可以快速过一下,都是基本语法,不需要花太多时间. 着重中后段的一些章节,类型信息.泛型.容器.IO.并发等. 中文翻译版 阅读地址 对于一个架构师 ...
- Kotlin 或将取代 Java——《Java 编程思想》作者 Bruce Eckel [转]
Bruce Eckel 是<Java 编程思想>.<C++编程思想>的作者,同时也是 MindView 公司的总裁,该公司向客户提供软件咨询和培训.他是 C++ 标准委员会拥有 ...
- 《Java编程思想第四版》附录 B 对比 C++和 Java
<Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是 ...
- JAVA编程思想读书笔记(四)--对象的克隆
接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...
- 再读《Java编程思想 》
前段时间在豆瓣上无意间看到一个帖子"我为什么把thinking in java 读了10遍",是11年的帖子,下面评论至今,各种声音都有,不过大多数还是佩服和支持的.我个人来讲也是 ...
- 24.JAVA编程思想——违例差错控制
24.JAVA编程思想--违例差错控制 Java 的基本原理就是"形式错误的代码不会执行". 与C++类似,捕获错误最理想的是在编译期间,最好在试图执行程序曾经.然而.并不是全部错 ...
- 33.JAVA编程思想——JAVA IO File类
33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的 ...
随机推荐
- 基于SDN4.2.4的neo4j实例
首先添加maven依赖 (1)SND的声明 <dependency> <groupId>org.springframework.data</groupId> < ...
- ffmpeg函数04__v_register_output_format()
注册复用器,编码器等的函数av_register_all() 注册编解码器avcodec_register_all() 注册复用器的函数是av_register_output_format(). 注册 ...
- k8s master节点添加kubectl的使用
- nginx第五天
nginx的全局变量 变量 说明 $args 请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2 $content_length HTTP ...
- Arthas--Java在线分析诊断工具(阿尔萨斯)
序言 Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题. 资料 https://blog.csdn.net/youanyyou/article/ ...
- 获取URL值带参数跳转
//要跳转界面 api.openWin({ name: 'PayOrder', url: 'PayOrder.html?id=2', pageParam:{name:pr} }); //跳转后的界面 ...
- HGOI20190707 题解
Problem A 钢铁侠的诞生 现在有$n$个数字$a_i \leq 10^9 $,然后取出$m$个数字,保证合法. 从小到大输出剩余的$n-m$个数字. 对于100%的数据$m\leq n \le ...
- idea2018.3.6安装与破解教程(亲测可用、破解到2100年)
最近,帮室友进行idea安装,之前自己安装借鉴的博客已404,在网上找了好几个都无效,想着总结一份备用. 此博客是又找了一台电脑,边安装边写的. 目录 (已安装好的,可以直接看idea2018.3.6 ...
- HDU 3669 [Cross the Wall] DP斜率优化
问题分析 首先,如果一个人的\(w\)和\(h\)均小于另一个人,那么这个人显然可以被省略.如果我们将剩下的人按\(w[i]\)递增排序,那么\(h[i]\)就是递减. 之后我们考虑DP. 我们设\( ...
- String Compression
F. String Compression 利用dp和前缀数组来写 dp[i] 所表示的东西是 字符串 s[0:i] (不包括 s[i])能够压缩的最短长度 bj[i][j] 表示的是字符串 s[i: ...