java.io.FileOutputStream:文件字节输出流
- 作用:以内存为基准,把内存中的数据以字节的形式写出到文件中去。
常用构造器:
- public FileOutputStream(File file):创建字节输出流管道与文件对象接通。
- public FileOutputStream(String name):创建字节输出流管道与源文件路径接通。
- public FileOutputStream(File file, boolean append):创建字节输出流管道与文件对象接通,可追加数据。
- public FileOutputStream(String name, boolean append):创建字节输出流管道与源文件路径接通,可追加数据。
常用方法:
- public void write(int b):写一个字节出去。
- public void write(byte[] b) throws IOException:写一个字节数组出去。
- public void write(byte[] b, int off, int len):写一个字节数组的一部分出去。
- public void close():关闭流。
write(int b)方法
示例:每次写一个字节出去
package com.team.output_byte_stream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) throws IOException {
OutputStream os = new FileOutputStream("oop-app1/src/com/team//output_byte_stream/output.txt");
os.write(65);
os.write(66);
os.close();
}
}
运行,输出到output.txt文件中的内容为:
示例:用write(int b)写中文出去出现问题
package com.team.output_byte_stream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) throws IOException {
OutputStream os = new FileOutputStream("oop-app1/src/com/team//output_byte_stream/output.txt");
os.write('好');
os.close();
}
}
运行,输出到文件的内容:
分析:‘好’ 可以转为整数,但UTF-8编码,‘好’ 占3个字节,而write(int b)方法一次只能写一个字节出去,所以出现问题。
write(byte[] b)方法
示例:一次写多个字节出去
package com.team.output_byte_stream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) throws IOException {
OutputStream os = new FileOutputStream("oop-app1/src/com/team//output_byte_stream/output.txt");
byte[] bytes = "好的hello".getBytes();
os.write(bytes);
os.close();
}
}
运行,输出到文件中的内容:
write(byte[] b, int off, int len)方法
示例:一次写字节数组的一部分出去
package com.team.output_byte_stream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) throws IOException {
OutputStream os = new FileOutputStream("oop-app1/src/com/team//output_byte_stream/output.txt");
byte[] bytes = "好的hello".getBytes();
os.write(bytes, 0, 6);
os.close();
}
}
运行,输出到文件中的内容:
FileOutputStream(String name, boolean append)构造追加文件输出管道
示例:在文件中追加数据
开始文件中的内容:
现在文件中追加数据:
package com.team.output_byte_stream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) throws IOException {
OutputStream os = new FileOutputStream("oop-app1/src/com/team/output_byte_stream/output.txt", true);
byte[] bytes = "今天气温回升了".getBytes();
os.write(bytes);
os.close();
}
}
运行以后,输出文件中的内容为:
示例:在文件中写入换行
package com.team.output_byte_stream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) throws IOException {
OutputStream os = new FileOutputStream("oop-app1/src/com/team/output_byte_stream/output.txt", true);
byte[] bytes = "今天气温回升了".getBytes();
os.write(bytes);
os.write("\r\n".getBytes());
os.close();
}
}
第一次执行,输出文件中的内容为:
再执行一次,输出文件中的内容为: