java学习 -- IO(2)-- 字节流文件输出流
前言
java.io.FileOutputStream extends OutputStream
FileOutputStream:文件字节输出流
作用:把内存中的数据写入到硬盘的文件中
一、FileOutputStream
字节流OutputStream的使用:
定义了一些子类共性的成员方法:
- public void close() 关闭此输出流并释放此流相关联的任何系统资源
- public void flush() 刷新此输出流并强制任何缓冲的输出字节被写出。
- public void write(byte[] b)
- public void write(byte[] b,int off,int len)
- public abstract void write(int b)
java.io.FileOutputStream extends OutputStream
FileOutputStream:文件字节输出流
作用:把内存中的数据写入到硬盘的文件中
构造方法:
FileOutputStream(String name)
FileOutputStream(File file)
参数:写入数据的目的
String name:目的地是一个文件的路径
File file:目的地时一个文件
构造方法的作用:
1.创建一个FileOutputStream对象
2.会根据构造方法中传递的文件/文件路径,创建一个空的文件
3.会把FileOutputStream对象指向创建好的文件
写入数据的原理(内存–>硬盘)
java程序–>JVM(java虚拟机)–>os(操作系统)–>os调用写数据的方法–>把数据写入到文件中
二、使用步骤:
- 创建一个FileOutputStream对象,及构造方法中写入数据的目的地
- 调用FileOutputStream对象的方法write,把数据写入到文件中
- 释放资源close()
示例:
//1.创建一个FileOutputStream对象,及构造方法中写入数据的目的地
FileOutputStream fos=new FileOutputStream("E:\\aaaa.txt");
//2.调用FileOutputStream对象的方法write,把数据写入到文件中
fos.write('a');
//
byte[] bytes={'b','c','d','e'};
fos.write(bytes);
fos.write(bytes,1,2);
// "字符串".getBytes() 将字符串转变为字节。
byte[] bytes1 = "hello_world".getBytes();
fos.write(bytes1);
// 3.释放资源close()
fos.close();
输出结果:
三、字节追加、换行
追加/换行,使用两个参数的构造方法
FileOutputStream(String name,boolean append)创建一个向具有指定 name 的文件中写入数据的输出文件流
FileOutputStream(File file,boolean append)创建一个向具有指定 File 对象表示的文件中写入数据的输出文件流
参数:
String name,File file :写入数据的目的地
boolean append :追加写的开关 true:创建对象不会覆盖原文件,继续在原文件末尾追加数据**
写换行:写换行符号
Windows: \r\n
Linux:\n
mac:\r
代码示例:
FileOutputStream fos=new FileOutputStream("E:\\bb.txt",true);
fos.write("你好".getBytes());
for (int i = 0; i < 10; i++) {
fos.write("\r\n".getBytes());
fos.write("中国".getBytes());
}
fos.close();