zoukankan      html  css  js  c++  java
  • IO_PrintStream

    相同点:都是继承与FileOutputStream,用于包装其它输出流。
    不同点:
    (01) PrintStream和DataOutputStream 都可以将数据格式化输出;但它们在“输出字符串”时的编码不同。
    PrintStream是输出时采用的是用户指定的编码(创建PrintStream时指定的),若没有指定,则采用系统默认的字符编码。而DataOutputStream则采用的是UTF-8。
    (02) 它们的写入数据时的异常处理机制不同。
    DataOutputStream在通过write()向“输出流”中写入数据时,若产生IOException,会抛出。而PrintStream在通过write()向“输出流”中写入数据时,若产生IOException,则会在write()中进行捕获处理;并设置trouble标记(用于表示产生了异常)为true。用户可以通过checkError()返回trouble值,从而检查输出流中是否产生了异常。
    (03) 构造函数不同
    DataOutputStream的构造函数只有一个:DataOutputStream(OutputStream out)。即它只支持以输出流out作为“DataOutputStream的输出流”。
    而PrintStream的构造函数有许多:和DataOutputStream一样,支持以输出流out作为“PrintStream输出流”的构造函数;还支持以“File对象”或者“String类型的文件名对象”的构造函数。
    而且,在PrintStream的构造函数中,能“指定字符集”和“是否支持自动flush()操作”。
    (04) 目的不同
    DataOutputStream的作用是装饰其它的输出流,它和DataInputStream配合使用:允许应用程序以与机器无关的方式从底层输入流中读写java数据类型。而PrintStream的作用虽然也是装饰其他输出流,但是它的目的不是以与机器无关的方式从底层读写java数据类型;而是为其它输出流提供打印各种数据值表示形式,使其它输出流能方便的通过print(), println()或printf()等输出各种格式的数据。

    public class PrintStreamJava {
    
    	public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    		byte[] b = "shuchu".getBytes();
    		PrintStream ps = new PrintStream(System.out);
    		ps.write(b);
    		ps.println("ss");
    		ps.close();
    	}
    
    }
    

    参考:https://www.cnblogs.com/skywang12345/p/io_16.html

  • 相关阅读:
    Kotlin扩展深入解析及注意事项和可见性
    Kotlin属性揭秘与延迟初始化特性
    Kotlin伴生对象及其字节码内幕详解
    Kotlin继承与重写重要特性剖析
    Kotlin构造方法详解与初始化过程分析
    Range与面向对象的Kotlin
    Kotlin编译器优化与when关键字详解
    Kotlin基础特性深入讲解
    java读取mysql表的注释及字段注释
    mysql导入导出sql文件
  • 原文地址:https://www.cnblogs.com/changzuidaerguai/p/9279053.html
Copyright © 2011-2022 走看看