J2SE知识点摘记(十五)
1、 字节流和字符流的转换
以字符为导向的stream基本上有与之相对应的以字节为导向的Stream,两个对应类实现的功能相同,只是操作时的导向不同
字节输入流转换为字符输入流:
InputStreamReader是字节流向字符流的桥梁,它使用指定的charset读取字节并将其解码为字符,它使用的字符集可以由名称指定或显示给定。根据InputStream的实例创建InputStreamReader的方法有4种:
InputStreamReader(InputStream in)//根据默认字符集创建
InputStreamReader(InputStream in,Charset cs)//使用给定字符集创建
InputStreamReader(InputStream in,CharsetDecoder dec)//使用给定字符集解码器创建
InputStreamReader(InputStream in,String charsetName)//使用指定字符集创建
字节输出流转换为字符输出流
OutputStreamWriter是字符流通向字节流的桥梁,它使用指定的charset将要写入流中的字符编码成字节,它使用的字符集可以由名称指定或显示给定,否则将接受默认的字符集:
根据根据InputStream的实例创建OutputStreamWriter的方法有4种:
OutputStreamWriter(outputstream out)//根据默认的字符集创建
OutputStreamWriter(outputstream out,charset cs)//使用给定的字符集创建
OutputStreamWriter(outputstream out,charsetDecoder dec)//使用组定字符集创建
OutputStreamWriter(outputstream out,String charsetName)//使用指定字符集创建
应尽量使用BufferedWriter包装OuputStreamWriter类类,用BufferedReader类包装InputStreamReader类.
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
如何一下子就读取到键盘上输入的一整行字符呢?
BufferdReader in=new BufferedReader(new InputStreamReader(System.in));
String strLine=in.readLine();
构建BufferedReader对象时,必须传递一个Reader类型的对象最为参数,而键盘对应的System.in是一个InputStream类型的对象,所以这里必须要用到一个InputStreamReader的转换类,将System.in转换成字符流之后,放入到字符流缓冲区之中,之后从缓冲区中每次读入一行数据.
通过Interger类将输入的字符串转换成基本数据类型中的整形.
对象序列化
J2SE知识点摘记(十五)的更多相关文章
- J2SE知识点摘记(十九)
Collection 1.2.1 常用方法 Collection 接口用于表示任何对象或元素组.想要尽可能以常规方式处理一组元素时,就使用这一接口.Collection 在前面的大图也 ...
- J2SE知识点摘记(十八)
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1) Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...
- J2SE知识点摘记(十六)
1. IO包中的类层次 ┌BufferedInputStream ├DataInputStream ┌FilterInputStream┼LineNumberInputStream ├ ...
- J2SE知识点摘记(十四)
1. 字符流 Reader是定义java的流式字符输入模式的抽象类,该类所有方法在出错的情况下都将引发IOException异常. Int read(char buffer[]) ...
- J2SE知识点摘记(十二)
1. File类 下面的构造方法可以用来生成File对象 File(String directoryPath) geName()用于返回文件名,getParent()返回父目录名,exist ...
- J2SE知识点摘记(十)
1. 多线程的同步 2. 同步代码块 即程序中不能有多个线程同时在这两句代码之间执行.(必须两句代码执行完,其他线程才可以公用执行) 同步代码块定义语法如下 ... syn ...
- J2SE知识点摘记(二十五)
Set 1.5.1 概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的.Set最大的特性就是不允许在其中存放的元素是重复的.根据这个特点,我们就可以使用Set 这个 ...
- J2SE知识点摘记(二十六)
为了用“集合框架”的额外部分把排序支持添加到 Java 2 SDK,版本 1.2,核心 Java 库作了许多更改.像 String 和 Integer 类如今实现 Comparable 接口以提供自然 ...
- J2SE知识点摘记(五)
1. 引用数据类型的传递 java用引用代替C++中的指针 fun()方法接收的参数是是Change c1,也就是说说fun()方法接受的是一个对象的引用,所以fun方法中所所做的操作就 ...
随机推荐
- CSS实例:水平居中和垂直居中的多种解决方案
1.单行垂直居中 文字在层中垂直居中vertical-align 属性是做不到的.我们这里有个比较巧妙的方法就是:设置height的高度与line-height的高度相同! Example Sourc ...
- Android 混淆文件project.properties和proguard-project.txt
参考文档:http://blog.csdn.net/xueyepiaoling/article/details/8202359 http://glblong.blog.51cto.com/305861 ...
- GitHub问题之恢复本地被删除的文件
折腾了真久,GitHub commit之后,我手痒把本地的一个文件给删了,然后一直Git pull都发现不能恢复.远程库里面还是有该文件的.就是我想将远程库的文件回到本地被删除了的位置. 特别的是,我 ...
- linux网卡掉包或挂掉解决办法
最近自己公司网站老出现掉包问题之前以为是网络问题或机房问题,经过N久的排查发现是linux网卡掉包了,下面我来分享我的解决办法. 之前公司的系统由于网卡问题,经常出现掉包(掉包排除攻击的 因素)或 ...
- UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题
本文出自:http://blog.csdn.net/dr5459 题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&a ...
- CentOS Linux 中文输入法安装及设置
安装: 1.需要root权限,所以要用root登录 ,或su root 2.yum install "@Chinese Support" 3.exit 4.回到桌面,system- ...
- 普林斯顿大学算法课 Algorithm Part I Week 3 重复元素排序 - 三路快排 Duplicate Keys
很多时候排序是为了对数据进行归类,这种排序重复值特别多 通过年龄统计人口 删除邮件列表里的重复邮件 通过大学对求职者进行排序 若使用普通的快排对重复数据进行排序,会造成N^2复杂度,但是归并排序和三路 ...
- mininet 中图形化界面的安装
just run a GUI in VM console window First, log in to the VM in its console window (i.e. type directl ...
- Cocoa 之 Core Data(2)- 代码示例
前面详 细讲解了 Core Data 的框架以及设计的类,下面我们来讲解一个完全手动编写代码 使用这些类的示例,这个例子来自 苹果官方示例.在这个例子里面,我们打算做这样一件事 情:记录程序运行记录( ...
- Productivity Improvements for the Entity Framework(实体框架设计)【转】
Background We’ve been hearing a lot of good feedback on the recently released update to the Entity F ...