*流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
Io流:借助于流技术在不同的设备之间进行数据传输!
* 流的划分:
* 按方向划分:
* 输入流:读数据
* 输出流:写数据
* 按类型划分然后流的方向划分:
* 字节流:
* 字节输入流:InputStream
* 字节输出流:OutputStream
* 字符流:
* 字符输入流:Reader
* 字符输出流:Write
* 需求:请使用字节输入流写一些数据,然后在当前项目下输出一个文本文件
* 分析:
* 操作“文本文件”------>优先采用字符输入流,但是字符流是字节流之后出现,先使用字节流!
* 字节流:
* 字节输入流:InputStream:抽象类,不能实例化
* xxxInputStream:都是上面的子类
* eg:FileInputStream:文件字节输入流
* 字节输出流:OutputStream:抽象类,不能实例化
* xxxOutputStream:都是上面的子类
* eg:FileOutputStream:文件字节输入流
*
* 字节输出流使用步骤:
* 1)创建字节输出流对象(底层的创建过程需要调用系统资源--->非java语言实现)
*
*
* public FileOutputStream(File file)throws FileNotFoundException
* 将指定File对象作为参数传递构造出文件字节输出流对象
* public FileOutputStream(String pathname)
* 将指定的文件路径作为参数传递创建文件字节输出流对象
* 2)写数据
* write()给输出的文件中写数据
* 3)释放资源
* close()
public class FileOutputStreamDemo {
public static void main(String[] args) throws IOException {
//创建文件字节输出流对象
OutputStream os=new FileOutputStream(new File("os.txt"));
//直接创建使用具体类,并创建该具体类对象
/*
* 1)调用系统资源创建fis.txt文件--->非java语言实现
* 2)在栈内存种开辟空间fis变量,堆内存种申请空间
* 3)将fis指向这个地址,建立系统资源的指向(资源地址)
*
* */
FileOutputStream fis=new FileOutputStream("fis.txt");
//写数据使用输出流对象给fis.txt文件写入数据
fis.write("hello io".getBytes());
//释放资源
//释放跟当前流对象有关系的系统资源,让系统资源被回收
fis.close();
}
}