专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

outputstream用法,Java中outputstream详解

来源:小嗨整编  作者:小嗨  发布时间:2023-03-15 04:00
摘要:outputstream用法,Java中outputstream详解接下来再来看看OutputStream以及子类的相关使用。对于OutputStream主要是字节流类型的输出流。OutputStreamOutputStream抽象类是所有...

outputstream用法,Java中outputstream详解

CheckedOutputStream

一个输出流,它还维护正在写入的数据的校验和。 然后可以使用校验和来验证输出数据的完整性。

定义:

public class CheckedOutputStream extends FilterOutputStream

同样只有一个构造函数

构造器

描述信息

CheckedOutputStream(OutputStream out, Checksum cksum)

创建具有指定校验和的输出流。

方法有一个父类没有的方法 getChecksum() 意思是:返回此输出流的校验和。

演示代码:

try (FileOutputStream fos = new FileOutputStream("file.txt");     CheckedOutputStream check = new CheckedOutputStream(fos, new CRC32());) {    String content = "这个是 CheckedOutputStream 写入的内容";    byte[] array = content.getBytes();    for (byte b : array) {        check.write(b);    }    long ckSum = check.getChecksum().getValue();    System.out.println("Checksum: 0x" + Long.toHexString(ckSum).toUpperCase());} catch (IOException ex) {    System.out.println(ex.getMessage());}

完整代码和运行效果:

outputstream用法,Java中outputstream详解

使用工具校验一下 CRC32 的校验码是否一致。

outputstream用法,Java中outputstream详解

CipherOutputStream 不在演示,在加密和解密知识点在来详细说这个。

DataOutputStream

数据输出流允许应用程序以可移植的方式将原始 Java 数据类型写入输出流。 然后,应用程序可以使用数据输入流来读回数据。 多个并发线程使用 DataOutputStream 是不安全的。 如果一个 DataOutputStream 被多个线程使用,那么对数据输出流的访问应该由适当的同步控制。

定义:

public class DataOutputStream extends FilterOutputStream implements DataOutput

outputstream用法,Java中outputstream详解

代码演示效果:

try (FileOutputStream fileOutputStream = new FileOutputStream("file.txt");     DataOutputStream dataOutputStream = new DataOutputStream(fileOutputStream)) {    String content = "这个是 DataOutputStream 的演示";    byte[] array = content.getBytes();    for (byte b : array) {        dataOutputStream.write(b);    }} catch (IOException ex) {    System.out.println(ex.getMessage());}

outputstream用法,Java中outputstream详解

对于 DeflaterOutputStream 和 InflaterOutputStream 是压缩和解压的输出流。这里先不做演示。

PrintStream

PrintStream 向另一个输出流添加了功能,即能够方便地打印各种数据值的表示形式。

还提供了另外两个功能。与其他输出流不同,PrintStream 从不抛出 IOException;相反,异常情况只是设置一个内部标志,可以通过 checkError 方法进行测试。

也可以可选的创建一个 PrintStream 以便自动刷新;这意味着在写入字节数组、调用 println 方法之一或写入换行符或字节 ('\n') 后,会自动调用底层输出流的 flush 方法。

PrintStream 打印的所有字符都使用给定的编码或字符集转换为字节,如果未指定,则使用平台的默认字符编码。 PrintWriter 类应该用于需要写入字符而不是字节的情况。 这个类总是用字符集的默认替换字符串替换格式错误和不可映射的字符序列。

当需要对编码过程进行更多控制时,应使用 CharsetEncoder 类。

演示代码:

outputstream用法,Java中outputstream详解

这里来看我们经常用到的一个使用方法。

System.out.println("输出一串字符串。");

该类是 System

java.lang.Systempublic final class System

里面有个静态的常量方法 out 返回值是: PrintStream。 然后就可以理解为什么可以打印字符串了。

outputstream用法,Java中outputstream详解

所以 System.out.println(""); 基本等同于 new PrintStream("file.txt").println(""); 区别是一个输出到了控制台, 一个输出到了文件中。 这也是以后在 web 开发中使用 System.out 打印信息的时候, 其实也会写到日志文件中一样。

OutputStream 相关的知识点就先说到这了。 应该把相关的案例使用都介绍到了。


本文地址:IT问答频道 https://www.eeeoo.cn/itwenda/927371_3.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!

共3页 1 2 3 当前是最后一页

IT问答
小编:小嗨整编
相关文章相关阅读
  • javascript教程网(javascript教程推荐)

    javascript教程网(javascript教程推荐)

    javascript教程网(javascript教程推荐)JavaScript作为一种广泛应用于网页开发的技术,已经成为前端开发不可或缺的一部分。对于刚接触编程的菜鸟来说,选择一份合适的JavaScript教程至关重要。本文将为您推荐几款优...

  • 我的世界不死图腾获取方式(我的世界不死图腾用法)

    我的世界不死图腾获取方式(我的世界不死图腾用法)

    我的世界不死图腾获取方式(我的世界不死图腾用法)我的世界不死图腾由召唤师掉落,使用林中鬼屋藏宝图找到林中鬼屋,然后进入林中鬼屋的房间里击杀召唤师才能获得。不过不死图腾的掉落率比较低,需要击杀许多召唤师才能获得。我的世界不死图腾用法移除玩家身...

  • java软件叫什么(java软件安装教程详细)?

    java软件叫什么(java软件安装教程详细)?

    java软件叫什么(java软件安装教程详细)?Java语言是由美国Sun(StanfordUniversityNetwork)公司在1995年推出的,2009年Oracle甲骨文公司收购了Sun公司,如果想开发一个全新的Java程序,必须...

  • 我的世界java版官网(我的世界java版怎么下载)?

    我的世界java版官网(我的世界java版怎么下载)?

    我的世界java版官网(我的世界java版怎么下载)?我的世界java版早在2011年就已发布,而当时的中文补丁使许多人并未购买正版。而如今的网易版让许多人觉得没有童年的味道,那么如何下载java版呢?我的世界java版官网:minecra...

  • ones刻录软件的用法(ones刻录软件怎么刻录数据光盘)?

    ones刻录软件的用法(ones刻录软件怎么刻录数据光盘)?

    ones刻录软件的用法(ones刻录软件怎么刻录数据光盘)?ones刻录软件是一款专业的光盘刻录软件,不仅软件体积小巧、占用内存少,操作简单便捷,而且ones光盘刻录软件功能全面,用户可以通过软件刻录多种格式的文件,轻松上手操作,为用户带来...

  • 什么是构造函数?详解JavaScript中的构造函数

    什么是构造函数?详解JavaScript中的构造函数

    作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。本篇文章带大家详细了解一下javascript中的构造函数,介绍一下怎么利用构造函数创建一个js对象,希望对大家有所帮助!一个普通的函数被用...

  • 什么是Linux系统中nc命令?nc命令的用法详解

    什么是Linux系统中nc命令?nc命令的用法详解

    这篇文章主要介绍了linux系统中nc命令的基本用法,nc命令非常之强大,这里先简单介绍它用来作端口扫描以及文件传输等的基础使用。功能说明:功能强大的网络工具,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小...

  • Java 中的各种锁有哪些?

    Java 中的各种锁有哪些?

      Java中15种锁的介绍  在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:  公平锁/非公平锁  可重入锁/不可重入锁  独享锁/共享锁  互斥锁/读写锁  乐观锁...

  • 周排行
  • 月排行
  • 年排行

精彩推荐