欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java IO编程——转换流

程序员文章站 2023-10-29 11:33:10
所谓的转换流指的是可以实现字节流与字符流操作的功能转换,例如:进行输出的时候OutputStream需要将内容变为字节数组后才可以进行输出,而Writer可以直接输出字符串,这一点是方便的,所以很多人就认为需要提供有一种转换的机制,来实现不同流类型的转化操作,为此在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)

Java IO编程——转换流

 

 

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

范例:观察转换

 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 }

Java IO编程——转换流

 

 

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

 

filewriter

filereader

public class filewriter  extends outputstreamwriter

public class filereader extends inputstreamreader

 Java IO编程——转换流Java IO编程——转换流

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

 

 

 Java IO编程——转换流

 

 

Java IO编程——转换流