数据在硬盘中都是以二进制形式来进行存储。存储单位转换如下:
1byte = 8bit
1kb = 1024 byte
1mb = 1024 kb
1gb = 1024mb
1tb = 1024 gb
字节流作用:不仅可以操作字符,还可以操作其他媒体文件。
1 字节输入输出流
1.1 OutputStream类
定义:此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。
(1)操作的都是字节
(2)定义了输出字节流的基本功性功能
(3)输出流中定义的都是写的方法write(),可以操作字节数组,操作单个字符。
1.2 InputStream类
定义:此抽象类是表示输入字节流的所有类的超类。
(1)操作的都是字节
(2)定义了输入字节流的基本功性功能
(3)输出流中定义的都是写的方法read()
2 文件输出流FileOutputStream类
数据在硬盘和内存之间是以流的形式来传输数据(二进制)。向硬盘中写入文件中需要用到文件输出流(FileOutputStream),向内存中读取文件需要用到文件输入流(FileInputStream)。文件输出流最终的体现是文件:
(1)若文件不存在,文件输出流会自动创建要写入的目标文件。
(2)若文件存在,要根据不同的需求调用构造函数。
FileOutputStream(File file)文件输出流会自动刷新并覆盖原文件,原文件内容被删除。
FileOutputStream(File file, boolean append)如果apped为true,则将字节写入文件末尾处。
public class FileOutPutStreamDemo01 {
/*
* 往文件中写入数据
*/
// 获取对应操作系统下的换行符
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static void main(String[] args) throws IOException {
// 1.创建父级文件夹对象,子父级文件分割开,便于操作
File dir = new File("tempfile");
// 判断文件夹是否存在
if(!dir.exists()){
dir.mkdirs();
}
// 指定要写入的文件
File file = new File(dir,"file.txt");
// 2.创建文件输出流,传入要写的文件
FileOutputStream fos = new FileOutputStream(file,true);
// 3.将要写入文件字符转为字节数组
byte [] data = (LINE_SEPARATOR+"C