专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

outputstream用法,Java中outputstream详解

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

String content = "把该段内容写入到文件系统中。";byte[] bytes = content.getBytes();try (FileOutputStream fileOutputStream = new FileOutputStream("file.txt")) {    fileOutputStream.write(bytes);} catch (IOException ex) {    System.out.println(ex.getMessage());}

演示案例:

outputstream用法,Java中outputstream详解

这里需要注意的是,文件的写入默认使用和系统相关的字符集, 我这是中文的系统,默认情况下是 GBK 的字符集体系。所以要看你的情况来选择, 后续写到 Writer 之后,在说字符集转换的问题。还有 cat 命令。这个命令只有在 PowerShell 的命令行工具中存在,cmd 命令行中并没有该指令。

另外的使用方式如下:

new FileOutputStream(new File("file.txt"));new FileOutputStream(new File("file.txt"), true);new FileOutputStream("file.txt", true)

完整代码如下:

outputstream用法,Java中outputstream详解

运行效果,后面两个都是追加数据的意思,保留原先的数据写入:

outputstream用法,Java中outputstream详解

FilterOutputStream

这个类是过滤输出流的所有类的超类。 这些流位于已经存在的输出流(底层输出流)之上,它用作其基本数据接收器,但可能会沿途转换数据或提供附加功能。 FilterOutputStream 类本身只是简单地使用将所有请求传递到底层输出流的版本覆盖了 OutputStream 的所有方法。 FilterOutputStream 的子类可能会进一步覆盖其中一些方法,并提供额外的封装方法和需要的字段。

定义:

public class FilterOutputStream extends OutputStream

outputstream用法,Java中outputstream详解

该类只有一个构造函数,构造方法为:

构造函数

描述信息

FilterOutputStream(OutputStream out)

在指定的基础输出流之上创建一个输出流过滤器。

查看代码案例:

String content = "使用 FilterOutputStream 把该段内容写入到文件系统中。";byte[] bytes = content.getBytes();try (FileOutputStream fileOutputStream = new FileOutputStream("file.txt");     FilterOutputStream filterOutputStream = new FilterOutputStream(fileOutputStream)) {    filterOutputStream.write(bytes);} catch (IOException ex) {    System.out.println(ex.getMessage());}

完整代码及运行效果:

outputstream用法,Java中outputstream详解

ObjectOutputStream

ObjectOutputStream 将 Java 对象的原始数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。对象的持久存储可以通过使用流的文件来实现。如果流是网络套接字流,则可以在另一个主机或另一个进程中重构对象。

只有支持 java.io.Serializable 接口的对象才能写入流。每个可序列化对象的类都经过编码,包括类的类名和签名、对象的字段和数组的值,以及从初始对象引用的任何其他对象的闭包。 writeObject 方法用于将对象写入流。任何对象,包括字符串和数组,都是用 writeObject 编写的。可以将多个对象或原语写入流。对象必须从相应的 ObjectInputstream 以与写入时相同的类型和相同的顺序读回。

定义为:

public class ObjectOutputStream    extends OutputStream implements ObjectOutput, ObjectStreamConstants

outputstream用法,Java中outputstream详解

对应的构造方法如下:

构造函数

描述说明

ObjectOutputStream()

为完全重新实现 ObjectOutputStream 的子类提供一种方法,使其不必分配刚刚由 ObjectOutputStream 的实现使用的私有数据。

ObjectOutputStream(OutputStream out)

创建一个写入指定 OutputStream 的 ObjectOutputStream。

直接代码演示:

outputstream用法,Java中outputstream详解

可以使用 ObjectInputStream 输入流读取对应的序列化内容。

常用的 write 方法

outputstream用法,Java中outputstream详解

代码:

String str = "使用序列化进行字符串的写入";try (FileOutputStream fileOutputStream = new FileOutputStream("string.tmp");     ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream)) {    objectOutputStream.writeObject(str);    objectOutputStream.writeByte(100);    objectOutputStream.writeChar(200);    objectOutputStream.writeInt(300);    objectOutputStream.writeShort(10);    objectOutputStream.writeFloat(0.111f);    objectOutputStream.writeDouble(1.11d);    objectOutputStream.writeLong(400L);    objectOutputStream.writeBoolean(true);} catch (IOException ex) {    System.out.println(ex.getMessage());}

PipedOutputStream

管道输出流可以连接到管道输入流以创建通信管道。 管道输出流是管道的发送端。 通常,数据由一个线程写入 PipedOutputStream 对象,数据由其他线程从连接的 PipedInputStream 读取。 不建议尝试从单个线程中使用这两个对象,因为它可能会使线程死锁。 如果从连接的管道输入流中读取数据字节的线程不再活动,则称该管道已损坏。

定义:

public class PipedOutputStream extends OutputStream

构造函数

构造函数

描述说明

PipedOutputStream()

创建尚未连接到管道输入流的管道输出流。

PipedOutputStream(PipedInputStream snk)

创建连接到指定管道输入流的管道输出流。

使用例子:

outputstream用法,Java中outputstream详解

BufferedOutputStream

该类实现了一个缓冲的输出流。 通过设置这样的输出流,应用程序可以将字节写入底层输出流,而不必为每个写入的字节调用底层系统。

定义:

public class BufferedOutputStream extends FilterOutputStream

构造函数:

构造器

描述信息

BufferedOutputStream(OutputStream out)

创建一个新的缓冲输出流以将数据写入指定的基础输出流。

BufferedOutputStream(OutputStream out, int size)

创建一个新的缓冲输出流,以将数据写入具有指定缓冲区大小的指定基础输出流。

代码示例:


本文地址:IT问答频道 https://www.hkm168.com/itwenda/927371_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小易整编
相关文章相关阅读
  • 什么是构造函数?详解JavaScript中的构造函数

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

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

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

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

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

  • Java 中的各种锁有哪些?

    Java 中的各种锁有哪些?

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

  • Java中的Scanner操作详解

    Java中的Scanner操作详解

    scanner是java中的一个常用类,用来读取控制台或文件中的输入数据。它提供了一种简单的方式来解析基本类型和字符串,并支持对正则表达式进行匹配。Scanner类位于java.util包中,因此在编写程序时需要import...

  • java8新特性有哪些

    java8新特性有哪些

    java8新特性有:1、lambda表达式;2、方法引用;3、默认方法;4、新编译工具;5、streamapi;6、datetimeapi;7、option;8、nashornjavascript引擎。Java8新增了非常多的特性...

  • java中tostring方法的作用是什么

    java中tostring方法的作用是什么

    java中tostring方法的作用是会返回一个【以文本方式表示】此对象的字符串,结果是一个简明但易于读懂的信息表达式。java中tostring方法的作用是toString方法会返回一个“以文本方式表示”此对象的字符串。结果是一个简明但易...

  • Javascript如何使网页跳转

    Javascript如何使网页跳转

    方法:1、使用_window.location.href方式;2、使用window.history.back方式;3、使用window.navigate方式;4、使用self.location方式;5、使用top.location方式。本教...

  • java异步是什么意思

    java异步是什么意思

    本篇文章将对java异步进行介绍,希望对大家有所帮助。异步:异步与同步相对,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。也就是说无论异步方法执行代码需要多长时间,跟主线程没有任何影响,主线程可以继续向下执行。...

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

精彩推荐