String content = "把该段内容写入到文件系统中。";byte[] bytes = content.getBytes();try (FileOutputStream fileOutputStream = new FileOutputStream("file.txt")) { fileOutputStream.write(bytes);} catch (IOException ex) { System.out.println(ex.getMessage());}
演示案例:
这里需要注意的是,文件的写入默认使用和系统相关的字符集, 我这是中文的系统,默认情况下是 GBK 的字符集体系。所以要看你的情况来选择, 后续写到 Writer 之后,在说字符集转换的问题。还有 cat 命令。这个命令只有在 PowerShell 的命令行工具中存在,cmd 命令行中并没有该指令。
另外的使用方式如下:
new FileOutputStream(new File("file.txt"));new FileOutputStream(new File("file.txt"), true);new FileOutputStream("file.txt", true)
完整代码如下:
运行效果,后面两个都是追加数据的意思,保留原先的数据写入:
FilterOutputStream
这个类是过滤输出流的所有类的超类。 这些流位于已经存在的输出流(底层输出流)之上,它用作其基本数据接收器,但可能会沿途转换数据或提供附加功能。 FilterOutputStream 类本身只是简单地使用将所有请求传递到底层输出流的版本覆盖了 OutputStream 的所有方法。 FilterOutputStream 的子类可能会进一步覆盖其中一些方法,并提供额外的封装方法和需要的字段。
定义:
public class FilterOutputStream extends 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());}
完整代码及运行效果:
ObjectOutputStream
ObjectOutputStream 将 Java 对象的原始数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。对象的持久存储可以通过使用流的文件来实现。如果流是网络套接字流,则可以在另一个主机或另一个进程中重构对象。
只有支持 java.io.Serializable 接口的对象才能写入流。每个可序列化对象的类都经过编码,包括类的类名和签名、对象的字段和数组的值,以及从初始对象引用的任何其他对象的闭包。 writeObject 方法用于将对象写入流。任何对象,包括字符串和数组,都是用 writeObject 编写的。可以将多个对象或原语写入流。对象必须从相应的 ObjectInputstream 以与写入时相同的类型和相同的顺序读回。
定义为:
public class ObjectOutputStream extends OutputStream implements ObjectOutput, ObjectStreamConstants
对应的构造方法如下:
构造函数 | 描述说明 |
ObjectOutputStream() | 为完全重新实现 ObjectOutputStream 的子类提供一种方法,使其不必分配刚刚由 ObjectOutputStream 的实现使用的私有数据。 |
ObjectOutputStream(OutputStream out) | 创建一个写入指定 OutputStream 的 ObjectOutputStream。 |
直接代码演示:
可以使用 ObjectInputStream 输入流读取对应的序列化内容。
常用的 write 方法
代码:
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) | 创建连接到指定管道输入流的管道输出流。 |
使用例子:
BufferedOutputStream
该类实现了一个缓冲的输出流。 通过设置这样的输出流,应用程序可以将字节写入底层输出流,而不必为每个写入的字节调用底层系统。
定义:
public class BufferedOutputStream extends FilterOutputStream
构造函数:
构造器 | 描述信息 |
BufferedOutputStream(OutputStream out) | 创建一个新的缓冲输出流以将数据写入指定的基础输出流。 |
BufferedOutputStream(OutputStream out, int size) | 创建一个新的缓冲输出流,以将数据写入具有指定缓冲区大小的指定基础输出流。 |
代码示例:
本文地址:百科问答频道 https://www.neebe.cn/wenda/927371_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!