• Java IO编程——转换流


    所谓的转换流指的是可以实现字节流与字符流操作的功能转换,例如:进行输出的时候OutputStream需要将内容变为字节数组后才可以进行输出,而Writer可以直接输出字符串,这一点是方便的,所以很多人就认为需要提供有一种转换的机制,来实现不同流类型的转化操作,为此在java.io包里面提供有两个类:InputStreamReaderOutputStreamWriter

    InputStreamReader

    OutputStreamWriter

    定义

    public class OutputStreamWriter extends Writer

    public class InputStreamReader extends Reader

    构造方法

    public OutputStreamWriter​(OutputStream out)

    public InputStreamReader​(InputStream in)

    通过类的继承结构与构造方法可以发现,所谓的转换处理就是将接收到的字节流对象通过向上转型变为字符流对象。

    范例:观察转换

     1 import java.io.File;
     2 import java.io.FileOutputStream;
     3 import java.io.OutputStream;
     4 import java.io.OutputStreamWriter;
     5 import java.io.Writer;
     6 public class JavaAPIDemo {
     7     public static void main(String[] args) throws Exception {
     8         File file = new File("D:" + File.separator + "hello" + File.separator + "mldn.txt");
     9         if (!file.getParentFile().exists()) {
    10             file.getParentFile().mkdirs(); // 父目录必须存在
    11         }
    12         OutputStream output = new FileOutputStream(file) ;
    13         Writer out = new OutputStreamWriter(output) ; // 字节流变为字符流
    14         out.write("www.mldn.cn"); // 直接输出字符串,字符流适合于处理中文
    15         out.close();
    16     }
    17 }
    JavaAPIDemo

     讲解转换流的主要目的基本上不是为了让开发者去记住它,而是知道有这样一种功能,但同时更多的是需要进行结构的分析处理。通过之前的字节流与字符流的一系列的分析之后你会发现OutputStream类有FileOutputStream直接子类、InputStream类有FileInputStream直接子类,但是来观察一下FileWriterFileReader类的继承关系。

     

    FileWriter

    FileReader

    public class FileWriter  extends OutputStreamWriter

    public class FileReader extends InputStreamReader

     

    实际上所谓的缓存都是指的是程序中间的一道处理缓冲区。

     

  • 相关阅读:
    VC笔记
    安卓开发,调用系统相册或相机选择图片
    安卓gradle时报错"ERROR: Plugin with id 'com.android.application' not found."
    安卓开发 利用百度识图api进行物体识别(java版)
    安卓使用讯飞SDK
    《构建之法》读书笔记1
    安卓开发 利用百度识图api进行物体识别
    安卓使用讯飞sdk报错
    Android webview学习
    open failed: EACCES (Permission denied)
  • 原文地址:https://www.cnblogs.com/CSAH/p/11777705.html
Copyright © 2020-2023  润新知