什么是IO流
IO指的是Input/Output,IO流:输入输出流。 统称为数据流。(IO Stream)
在Java程序中,对于数据的输入 / 输出操作以流的方式进行;流是从起源到接收的有序数据。JDK提供了各种各样的流类,用以获取不同种类的数据;
IO流的分类
IO流可以根据流向的不同分为两类:一种是输入流,另外一种是输出流。输入流和输出流的区别就在与程序从中是读取数据还是写入数据。输入流通俗的来说就是可以电脑硬盘上面的文件读取到电脑程序中,而输出流就是将电脑程序的数据写入电脑硬盘中。
按流分类可以分为上面两种,还可以按照数据的传输的单位来分,可以分为字节流和字符流。
顾名思义字节就是按照字节为单位来传输数据,字符就是按照字符为单位来传输数据。
IO流的基本类
字节输入流:FileInputStream,字节输出流:FileOutputStream,字符输入流:FileReader,字符输出流:FileWriter。下面是代码展示。
FileInputStream fis = new FileInputStream("");//创建输入流对象
FileOutputStream fos = new FileOutputStream("");//创建输出流对象
FileReader fileReader = new FileReader("");//创建一个字符输入流对象
FileWriter fileWriter = new FileWriter("");//创建一个字符输入流对象
注意:括号内需要写入的是要读取的文件目录。
照片复制代码演示
FileOutputStream fos = new FileOutputStream("D:\\新图片\\(kaobei)QQ图片20230523174511.jpg");//建立一个文件输入流
File file = new File("D:\\新图片\\QQ图片20230523174511.jpg");建一个文件对象
byte[] bytes = new byte[(int) file.length()];//利用byte来控制每次读取的字节次数,file.length()读取的是文件的长度,因为最后赋值是long型我们用一个(int)将其强转
int read ;创建一个read来接收图片
while((read=fis.read(bytes))!=-1)//判断是否还有数据{
fos.write(bytes,0,read); //写入数据