Java IO: FileOutputStream

原文链接 作者: Jakob Jenkov 译者: 李璟([email protected])

FileOutputStream可以往文件里写入字节流,它是OutputStream的子类,所以你可以像使用OutputStream那样使用FileOutputStream。

这是一个FileOutputStream的例子:

01 OutputStream output = new FileOutputStream("c:\\data\\output-text.txt");
02  
03 while(moreData) {
04  
05     int data = getMoreData();
06  
07     output.write(data);
08  
09 }
10  
11 output.close();

请注意,为了清晰,这里忽略了必要的异常处理。想了解更多异常处理的信息,请参考Java IO异常处理

FileOutputStream的write()方法取一个包含了待写入字节(译者注:低8位数据)的int变量作为参数进行写入。

FileOutputStream也有其他的构造函数,允许你通过不同的方式写入文件。请参考官方文档查阅更多信息。

文件内容的覆盖Override VS追加Appending

当你创建了一个指向已存在文件的FileOutputStream,你可以选择覆盖整个文件,或者在文件末尾追加内容。通过使用不同的构造函数可以实现不同的目的。

其中一个构造函数取文件名作为参数,会覆盖任何此文件名指向的文件。

1 OutputStream output = new FileOutputStream("c:\\data\\output-text.txt");

另外一个构造函数取2个参数:文件名和一个布尔值,布尔值表明你是否需要覆盖文件。这是构造函数的例子:

1 OutputStream output = new FileOutputStream("c:\\data\\output-text.txt"true); //appends to file
2  
3 OutputStream output = new FileOutputStream("c:\\data\\output-text.txt"false); //overwrites file

写入字节数组

既然FileOutputStream是OutputStream的子类,所以你也可以往FileOutputStream中写入字节数组,而不需要每次都只写入一个字节。可以参考我的OutputStream教程查阅更多关于写入字节数组的信息。

flush()

当你往FileOutputStream里写数据的时候,这些数据有可能会缓存在内存中。在之后的某个时间,比如,每次都只有X份数据可写,或者FileOutputStream关闭的时候,才会真正地写入磁盘。当FileOutputStream没被关闭,而你又想确保写入到FileOutputStream中的数据写入到磁盘中,可以调用flush()方法,该方法可以保证所有写入到FileOutputStream的数据全部写入到磁盘中。

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java IO: FileOutputStream

时间: 2024-07-30 10:02:26

Java IO: FileOutputStream的相关文章

【Java IO】FileInputStream 和 FileOutputStream

class FileInputStream extends  InputStream implements Closeable 作用:用于从文件系统中的某个文件中获得输入字节,处理二进制原始字节文件,如exe 图片等. 1.构造关联 的文件可以使用 String 描述,也可以使用File ,FileDescriptor 对象表示 2.read 是可能阻塞当前线程的.当read等其他操作的字节数大于此对象直接可用(available)的字节数时会阻塞. 3.read到文件末尾返回 -1 构造函数

java io系列07之 FileInputStream和FileOutputStream

本章介绍FileInputStream 和 FileOutputStream 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_07.html FileInputStream 和 FileOutputStream 介绍 FileInputStream 是文件输入流,它继承于InputStream.通常,我们使用FileInputStream从某个文件中获得输入字节.FileOutputStream 是文件输出流,它继承于OutputStream.通

java IO操作:FileInputStream,FileOutputStream,FileReader,FileWriter实例

FileInputStream   <span style="font-family:Verdana;">import java.io.File; import java.io.FileInputStream; import java.io.InputStream; public class TestFileInputStream { public static void main(String[] args) throws Exception { // 异常抛出, 不处理

java.io.IOException: No space left on device 错误

今天碰到比较奇怪的问题: 7/05/14 19:20:24 INFO util.Utils: Fetching http://192.168.31.160:33039/jars/spark_study_java-0.0.1-SNAPSHOT-jar-with-dependencies.jar to /tmp/spark-446068a4-aaa4-4277-b009-908bf0d4ecac/executor-dcc3175b-7d19-4485-81e1-bf31a83a66b4/spark-

Java IO操作:合并流

合并流:把两个文件合并在一起. 主要操作的是内容. 定义: public class SequenceInputStreamextends InputStream 方法摘要: 操作步骤: 1,分别建立两个FileInputStream实例对象,用于输出指定两个文件. 2,建立一个FileOutputStream实例,用于合并写入两个文件. 2,通过SequenceInputStream类,把两个文件的内容合并起来,放到这个类实例流中. 3,把SequenceInputStream实例的内容读取出

java IO的字节流和字符流及其区别

1. 字节流和字符流的概念    1.1 字节流继承于InputStream    OutputStream,    1.2 字符流继承于InputStreamReader    OutputStreamWriter.在java.io包中还有许多其他的流,主要是为了提高性能和使用方便. 2. 字节流与字符流的区别    2.1 要把一片二进制数据数据逐一输出到某个设备中,或者从某个设备中逐一读取一片二进制数据,不管输入输出设备是什么,我们要用统一的方式来完成这些操作,用一种抽象的方式进行描述,这

java Io文件输入输出流 复制文件

package com.hp.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class InputAndOutputFile{ //都是纯手打  如果复制显示不能复制 也懒得改  手敲 格式不好看见谅 public static void main(String

JAVA IO 总结

关于 java io 主要是 对 文件 的输入和 输出 方面的东西,因此,我进行系统的学习 主要有这几个 关键的类 File   FileInputStream   FileOutputStream   InputStreamReader   OutputStreamWriter  BufferedReader BufferedWriter  BufferedInputStream  BufferedOutputStream 以下我坐下详细的介绍: File 类是最基本的 文件类 可以获取文件的

JAVA IO操作:数据操作流:DataOutputStream和DataInputStream

掌握DataOutputStream和DataInputStream的作用. 可以使用DataOutputStream和DataInputStream写入和读取数据. 在IO包中提供了两个与平台无关的数据操作流 数据输出流:DataOutputStream 数据输入流:DataInputStream 通常按照一定格式将输入输出,再按照一定格式将数据输入. 要想使用数据输出流和输入流,则肯定要用户指定数据的保存格式.必须按指定的格式保存数据,才可以将数据输入流将数据读取进来. DataOutput