package cn.dali3.code16;
/*IO流
* 输入:把硬盘中的数据读取到内存中使用
* 输出:把内存中的数据写到硬盘保存
* 流:数据
*
* 流又分字节流与字符流 (8位一个字节,2个字节一个字符)
*
* IO包下关于字节流与字符流有四个超类:
* 字节输入流 InputStream
* 字节输出流 OutputStream
* 字符输入流 Reader
* 字符输出流 Writer
* 注:这四个类是抽象类不可以直接使用,需要使用子类
*
* 1.字节输出流 OutputStream
* 共性成员方法:
* public void close();关闭输出流,释放相关系统资源。
* public void flush();刷新此输出流,强制任何缓冲的输出字节被写出。
* public void write(byte [] b);将b.length字节从指定的字节数组写入此输出流
* public void write(byte [] b,int off,int len);从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。
* public void write(int b);将指定的字节写入此输出流
* 子类:FileOutputStream:文件字节输出流(把内存中的数据写到硬盘中)
* 构造方法:
* FileOutputStream(String name) 创建一个输出文件流。(name是指定的路径,结尾是文件的名称)
* FileOutputStream(String name,boolean append) append为true的时候可以续写文件,不覆盖
* FileOutputStream(File file) 创建一个输出文件流(file文件所表示的文件)
* FileOutputStream(File file,boolean append) append为true的时候可以续写文件,不覆盖
* 构造方法的作用:
* 1.创建一个对象
* 2.会根据构造方法中传递的文件/文件夹路径,创建一个空文件
* 3.会把创建好的对象指向该文件
*
* 当我们打开一个记事本的时候,记事本都会根据编码表把字节转换为字符表示
* 电脑中所有的文件都是以字节保存的。因为计算机只可以识别二进制
*
* 写入数据的原理:JAVA程序->JVM->OS->硬盘
*
* 字节输出流简单实用步骤:
* 1.创建一个FileOutputStream对象
* 2.用write方法写入数据
* 3.用close释放资源
* 换行符:windows:\r\n
* unix /n
* mac /r
* */
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class Demo01 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\新建文件夹\\a.txt",true);
fos.write('A');
byte [] b1 = "BCDEF".getBytes();
fos.write(b1);
fos.write(b1,3,2);
fos.write("\r\n".getBytes());
fos.write(b1,3,2);
fos.close();
/*
结果为 ABCDEFEF
EF
*/
}
}