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类将输入的字符串转换成基本数据类型中的整形.

对象序列化

上一篇:HDU 5792---2016暑假多校联合---World is Exploding


下一篇:drupal7 获取profile2模块自定义字段的值