首页 > 代码库 > 【JAVA 其它流对象】

【JAVA 其它流对象】

一、PrintStream类。

该流是字节流。

public class PrintStream extends FilterOutputStream implements Appendable, Closeable

 

 

java.lang.Object

  |--java.io.OutputStream

    |--java.io.FilterOutputStream

      |--java.io.PrintStream

API描述:

PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。它还提供其他两项功能。与其他输出流不同,PrintStream 永远不会抛出 IOException;而是,异常情况仅设置可通过 checkError 方法测试的内部标志。另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入 byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 (‘\n‘)。

PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类。  

简单来说该流的特点有:

(1)它不抛出IO异常。

(2)提供了打印方法可以对多种数据类型值进行打印。并可以保持数据的表示形式。

(3)该流若不指定编码类型,则适用平台默认的编码。

1.构造方法。

构造方法可以接受的参数包括:

(1)字符串路径

(2)File对象

(3)字节输出流

2.常用方法。

 voidclose()
          关闭流。
 voidflush()
          刷新该流的缓冲。

PrintSteam类若要将信息输出,必须刷新。如果想要自动刷新,则应当使用拥有自动刷新功能的构造方法。如果想要写入文件而且自动刷新,则需要先构造字节输出流,再作为参数传递给构造放方法。

 voidprint(基本数据类型 x)
          打印基本数据类型不换行,使用平台默认的字符编码。
 voidprintln(节本数据类型 x)
          打印基本数据类型到指定的对象,使用平台默认的字符编码并且在末尾添加平台上的行分隔符,实现换行的功能。
 voidwrite(byte[] buf, int off, int len)
          将 len 字节从指定的初始偏移量为 off 的 byte 数组写入此流。
 voidwrite(int b)
          将指定的字节写入此流。

print和write方法的区别是什么?

print方法会将打印的基本数据类型先转变成字符串再

打印;write方法则将打印的整型数据取低八位一个字节再打印。

print(97);结果是97;而write(97);结果则变成a。

二、PrintWriter类。

 该流是字符流。

public class PrintWriterextends Writer

 

 

java.lang.Object

  |--java.io.Writer

    |--java.io.PrintWriter

该类中的方法和PrintStream中的方法几乎相同,不赘述。

但是应当注意,这两者有一个共同的特点,那就是如果直接将数据写向文件,都不带自动刷新功能,如果想要写入文件而且还要自动刷新,则需要先使用输出流将文件封装起来。

三、序列流:SequenceInputStream类。

public class SequenceInputStreamextends InputStream

 

 

java.lang.Object

  |--java.io.InputStream

    |--java.io.SequenceInputStream

该流能够将多个输入流合并成一个流。

1.构造方法。

SequenceInputStream(Enumeration<? extends InputStream> e)
          通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。
SequenceInputStream(InputStream s1, InputStream s2)
          通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取 s1,然后读取 s2),以提供从此 SequenceInputStream 读取的字节。

这两个构造方法中,第一个方法比较常用,因为可以使用集合将各个流存放起来,这么做好处理。

2.常用方法。

略。

3.实例。

 

【JAVA 其它流对象】