Java处理流、转换流 您所在的位置:网站首页 java处理流和节点流 Java处理流、转换流

Java处理流、转换流

#Java处理流、转换流| 来源: 网络整理| 查看: 265

一、处理流 1、处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/输出方法,让程序员只需关心高级流的操作。 2、使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入输出功能,让节点流与底层的IO设备、文件交互。 3、实际识别处理流非常简单,只要流的构造器参数不是一个物理节点,而是已经存在的流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的 使用处理流的优势: (1)对开发人员来说,使用处理流进行输入/输出操作更简单 (2)使用处理流的执行效率更高 示例代码:

/** * 处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/ 输出方法,让程序员只需关心高级流的操作。 * 使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入/输出功能, 让节点流与底层的I/O设备、文件交互。 * 处理流和节点流的区别,只要流的构造器存在参数不是一个物理节点 ,而是己经存在的流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的。 * * @author sxj * */ public class PrintStreamDemo { public static void main(String[] args) throws IOException { Writer writer = new FileWriter("E:/z/PrintStreamDemo.txt"); PrintWriter printWriter = new PrintWriter(writer); String str = "处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/ 输出方法,让程序员只需关心高级流的操作。"; String str2 = "使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入/输出功能, 让节点流与底层的I/O设备、文件交互。"; String str3 = "处理流和节点流的区别,只要流的构造器存在参数不是一个物理节点 ,而是己经存在的流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的。"; printWriter.println(str); printWriter.println(str2); printWriter.println(str3); /** * 在使用处理流包装了底层节点流之后,关闭输入/输出流资源时,只要关闭最上层的处理流即可。 * 关闭最上层的处理流时,系统会自动关闭被该处理流包装的节点流。 */ printWriter.close(); } }

示例代码执行结果: 在这里插入图片描述 二、转换流 输入/输出流体系中还提供了两个转换流,这两个转换流用于将字节流转换成字符流,其中InputStreamReader将字节输入流转换成字符输入流,OutputStreamWriter将字节输出流转换成字符输出流 示例代码:

/** * 转换流 : InputStreamReader 和 OutputStreamWriter * 用于将字节流转换成字符流 * * @author sxj * */ public class InputStreamReaderDemo { public static void main(String[] args) { try { StringBuilder builder=new StringBuilder(); //读取文本文件 InputStream in=new FileInputStream("E:/Java课件/HelloWorld.java"); InputStreamReader inReader=new InputStreamReader(in); char[] cs=new char[50]; int count=0; while((count=inReader.read(cs, 0, cs.length))!=-1){ builder.append(cs, 0, count); } inReader.close(); //输出读取的内容 System.out.println(builder.toString()); //写文本文件 OutputStream out=new FileOutputStream("E:/Java课件/HelloWorld.java"); OutputStreamWriter writer=new OutputStreamWriter(out); writer.write(builder.toString()); writer.flush(); writer.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

示例代码执行结果: 在这里插入图片描述 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有