Java高级[8]:字节流与字符流的转换

Java高级[8]:字节流与字符流的转换

虽然Java支持字节流和字符流,但有时需要在字节流和字符流两者之间转换。InputStreamReader和OutputStreamWriter,这两个为类是字节流和字符流之间相互转换的类。

InputSreamReader用于将一个字节流中的字节解码成字符:

有两个构造方法:

InputStreamReader(InputStream in);

功能:用默认字符集创建一个InputStreamReader对象

InputStreamReader(InputStream in,String CharsetName);

功能:接收已指定字符集名的字符串,并用该字符创建对象

OutputStream用于将写入的字符编码成字节后写入一个字节流。

同样有两个构造方法:

OutputStreamWriter(OutputStream out);

功能:用默认字符集创建一个OutputStreamWriter对象;

OutputStreamWriter(OutputStream out,String CharSetName);

功能:接收已指定字符集名的字符串,并用该字符集创建OutputStreamWrite对象

为了避免频繁的转换字节流和字符流,对以上两个类进行了封装。

BufferedWriter类封装了OutputStreamWriter类;

BufferedReader类封装了InputStreamReader类;

封装格式:

BufferedWriter out=new BufferedWriter(new OutputStreamWriter(System.out));

BufferedReader in= new BufferedReader(new InputStreamReader(System.in);

利用下面的语句,可以从控制台读取一行字符串:

BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

String line=in.readLine();

字符流转换的使用。下面是代码及结果。例子中使用的是将输入的数字字符串,转换为整型数据进行输出。例如字符串为"123"则输出为123.

如果你觉得不错,点个赞或分享给你的朋友吧!