![Java高级[8]:字节流与字符流的转换](/upload/jingyan/2025/0916/3a1d480b.jpg)
虽然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.
如果你觉得不错,点个赞或分享给你的朋友吧!
