Java--转换流和标准输入输出流

xiaoxiao2021-02-28  26

一、转换流

  在IO包中,实际上只有字节流,字符流是在字节流的基础上转换出来的。

     转换流用于在字节流和字符流之间转换。

1、InputStreamReader:

Reader的子类,将输入的字节流变为字符流

即:将一个字节流的输入对象变为字符流的输入对象。

InputStreamReader需要和InputStream“套接”,它可以将字节流中读入的字节解码成字符

2、OutputStreamWriter:

Writer的子类,将输出的字符流变为字节流

即:将一个字符流的输出对象变为字节流的输出对象。

OutputStreamWriter需要和OutputStream“套接”,它可以将要写入字节流的字符编码成字节

例题:字节流变为字符流

package convert; import java.io.*; public class InputStreamReaderDemo { public static void main(String[] args) { InputStreamReader isr=new InputStreamReader(System.in); // 包装的是读取键盘输入的输入流 BufferedReader br=new BufferedReader(isr); // 将InputStreamReader包装到BufferedReader System.out.print("请输入:"); try { String content=br.readLine(); // 读取键盘输入,输入完成之前一直阻塞 System.out.println("您输入的内容是:"+content); } catch (IOException e) { e.printStackTrace(); }finally{ try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } }

运行结果:

例题:字符流变为字节流

package convert; import java.io.*; public class OutputStreamWriterDemo { public static void main(String[] args) { OutputStream out=null; OutputStreamWriter osw=null; BufferedWriter bw=null; try { out=new FileOutputStream("c:"+File.separator+"test.txt"); osw=new OutputStreamWriter(out); // 将out对象包装到OutputStreamWriter对象中 bw=new BufferedWriter(osw); // 将osw对象包装到BufferedWriter对象中 bw.write("hello java"); bw.newLine(); // 换行 bw.write("中国"); System.out.println("写入成功!"); } catch (Exception e) { e.printStackTrace(); }finally{ try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } }

运行结果:

例题:读取(Decode)文件内容

package convert; import java.io.*; public class DecodeDemo { public static void main(String[] args) { InputStream input=null; InputStreamReader isr=null; try { input=new FileInputStream("c:"+File.separator+"test.txt"); isr=new InputStreamReader(input,"utf-8"); // 指定InputStreamReader的编码 char[] c=new char[1024]; int len=isr.read(c); System.out.println("读取的内容是:"+new String(c,0,len)); } catch (Exception e) { e.printStackTrace(); }finally{ try { isr.close(); } catch (IOException e) { e.printStackTrace(); } } } }

运行结果:

例题:编译(Encode)文件内容

package convert; import java.io.*; public class EncodeDemo { public static void main(String[] args) { OutputStream out=null; OutputStreamWriter osw=null; try { out=new FileOutputStream("c:"+File.separator+"test.txt"); osw=new OutputStreamWriter(out,"utf-8"); // 对OutputStreamWriter设置编码 osw.write("中华人民共和国"); osw.flush(); System.out.println("写入成功!"); } catch (Exception e) { e.printStackTrace(); }finally{ try { osw.close(); } catch (IOException e) { e.printStackTrace(); } } } }

运行结果:

二、标准输入输出流

1. System.in 标准输入流 

2. System.out标准输出流 

3. System.err“标准”错误输出流 

转载请注明原文地址: https://www.6miu.com/read-2250350.html

最新回复(0)