JDK核心技术卷II高级特性(原书第八版)学习笔记1——流与文件1
2015-01-21 22:05
766 查看
由于Unicode每个字符使用了多个字节来存储信息,面向单个字节的原始流类 InputStream、OutputStream不便处理,所以抽象继承出来的Reader和Writer类专门处理基于两字节码元的Unicode字节流
available方法检查当前可用于读入的字节数量,因为流的读写可能被阻塞。
DataInputStream和DataOutputStream 可以以二进制形式读写所有基本Java类型。
FileInputStream fin = new FileInputStream("a.txt"); 某些流,如 FileInputStream从文件或 外部的位置上获取字节
DataInputStream din = new DataInputStream(fin); 其他流,如DataInputStream、PrintWriter能够将字节组封装在更有用的数据类型中。
double s = din.readDouble();
嵌套过滤器来添加多重功能。请求一个数据块并将其置于缓冲区中会显得更高效。
DataInputStream din = new DataInputStream(new BufferedInputStream(new FileInputStream("er.doc")));
FileOutputStream(File file,boolean append)
append true, 追加输出到文件末尾,原文件内容不被删除
append false, 删除原文件后重新输出
InputStreamReader类将包含字节(用某种字符编码方式表示的字符)的输入流转换成可以产生Unicode字符的读取器。
InputStreamReder in = New InputStreamReader(new FileInputStream("fef.txt"),"GBK");
PrintWriter 以文本格式打印字符串和数字。
Scanner 以文本格式读入数据
字符集
Charset cset=Charset.forName("ISO-8859-1"): //获取指定名称(不分大小写)的字符集
Set<String> aliaes = cset.alises(); //返回由别名构成的Set对象
如何编码Unicode 字符串的代码:
String str ="fefe";
ByteBuffer buffer = cset.encode(str);
byte[] bytes=buffer.array();
解码字节序列,需要有字节缓冲区:
byte[] bytes = ...;
ByteBuffer bbuf = ByteBuffer.wrap(bytes,offset,length);
CharBuffer cbuf=cset.decode(bbuf);
String str = cbuf.toString();
available方法检查当前可用于读入的字节数量,因为流的读写可能被阻塞。
DataInputStream和DataOutputStream 可以以二进制形式读写所有基本Java类型。
FileInputStream fin = new FileInputStream("a.txt"); 某些流,如 FileInputStream从文件或 外部的位置上获取字节
DataInputStream din = new DataInputStream(fin); 其他流,如DataInputStream、PrintWriter能够将字节组封装在更有用的数据类型中。
double s = din.readDouble();
嵌套过滤器来添加多重功能。请求一个数据块并将其置于缓冲区中会显得更高效。
DataInputStream din = new DataInputStream(new BufferedInputStream(new FileInputStream("er.doc")));
FileOutputStream(File file,boolean append)
append true, 追加输出到文件末尾,原文件内容不被删除
append false, 删除原文件后重新输出
InputStreamReader类将包含字节(用某种字符编码方式表示的字符)的输入流转换成可以产生Unicode字符的读取器。
InputStreamReder in = New InputStreamReader(new FileInputStream("fef.txt"),"GBK");
PrintWriter 以文本格式打印字符串和数字。
Scanner 以文本格式读入数据
字符集
Charset cset=Charset.forName("ISO-8859-1"): //获取指定名称(不分大小写)的字符集
Set<String> aliaes = cset.alises(); //返回由别名构成的Set对象
如何编码Unicode 字符串的代码:
String str ="fefe";
ByteBuffer buffer = cset.encode(str);
byte[] bytes=buffer.array();
解码字节序列,需要有字节缓冲区:
byte[] bytes = ...;
ByteBuffer bbuf = ByteBuffer.wrap(bytes,offset,length);
CharBuffer cbuf=cset.decode(bbuf);
String str = cbuf.toString();
相关文章推荐
- JDK核心技术卷II高级特性第八卷(第八版)流与文件2
- JAVA核心技术学习笔记(第七版,Ⅱ高级特性之集合)
- JAVA核心技术学习笔记(第七版,Ⅱ高级特性)
- 《Java核心技术 卷II 高级特性(原书第9版)》
- Python 学习笔记(三):文件,高级特性,枚举,正则表达式,模块
- java核心技术II:高级特性(第8版译文)下载链接--含参考源码
- Java核心技术 卷II 高级特性 原书第9版pdf
- Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例
- Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例
- 读《Java 核心技术 卷II》高级特性(原书第9版)
- Spring学习笔记2——高级特性
- Java高手真经. 编程基础卷:Java核心编程技术:Java基础+核心库+图形+网络+高级特性
- 《Java 核心技术 卷 Ⅱ:高级特性》(原书第8版) 已经上市了
- 精通.NET核心技术—高级特性目录
- Java2核心技术学习笔记
- Java2核心技术学习笔记 分类: java 2009-11-29 23:54 339人阅读 评论(0) 收藏
- Struts2学习笔记2——高级特性
- NetApp DataONTAP核心技术学习笔记(一)
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(二)BREAK和CONTINUE的区别
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(二)