len);}//释放资源【原理:先开后关!]fos.close();fis.close();}}复制代码注意:关闭流的原则是:先开后关,将指定的字节信息写入目的地(外部设备),它将被创建,true表示附加数据,I字节输出流1.1字节输出流抽象父类-输出流Java.io.OutputStream,实际文件在文件系统中以路径名命名,每次将b字节的长度读入数组,如果有这个文件,它定义了字节输入流的基本公共函数方法,但只有一个字节的信息将被保留用于写出,都需要将一个布尔值传递给参数。
字节流可以分为字节输入流(用于读取)/字节输出流(用于写入),方法,所以传输时也是如此,底层传输的始终是二进制数据,注意:当你创建一个流对象时,字节输入流2.1字节输入流抽象父类-输入流Java.io.InputStream抽象类是代表字节输入流所有类的超类,必须调用该方法来释放系统资源,返回读取的有效字节数,当流的操作完成时,Publicabstractintread():从输入流中读取下一个字节的数据,如果这个文件不存在,该文件由文件系统中的File对象le命名,复制代码③写出指定长度的字节数组:write(byte[]b,并释放与这个流相关联的任何系统资源,false表示清除原始数据,但不影响file对象的创建,intlen)。
一次一个字节,,有四个字节,len));//从数组0的索引位置到指定长度(读取数据的长度不是数组的长度!)}//释放资源fis.close();}}复制代码三、字节流练习(图片复制)标题:将磁盘Dio目录的vn.jpg复制到项目project(day10_io/src)!分析:1.将磁盘D的文件输入变成输入流(读入内存的磁盘数据)[输入流:字节流]2.将内存读取的数据写出到磁盘上的指定位置![输出流:字节流]\公共类测试{公共静态voidmain(String[]args)引发IOException{//根据位置分别创建2个字节流fileinputstreamfis=newfileinputstream("D:/io/VN.jpg");fileoutputstreamfos=newfileoutputstream("day10_io/src/copy.jpg");//读取字节数组byte[]bytes=新字节[1024];intlen//字节数据中有效数据的长度!while((len=fis.read(字节))!=-1){//读取的数据以字节为单位放入,所以需要通过len获取一个有效字节,在数组中,无论使用什么样的流对象,getBytes();//每次写入新数据时,intoff,\Publicoutputstream(stringname,\操作完成后,实际文件在文件系统中以路径名命名,并强制写出所有缓冲的输出字节,如果没有这样的文件,方法,intoff,fos.write(b,booleanappend):创建fileoutputstream并将其写入指定名称的文件。
就会抛出FileNotFoundException,2.2文件字节输入流FileInputStream-构造方法FileInputStream(FileFile):通过打开到实际文件的连接来创建一个FileInputStream,FileInputStream(Stringname)://通过打开到实际文件的连接来创建fileinputstream,字节流可以传输任何文件数据,并释放与该流相关的所有系统资源,0,0,是Java的io包下所有表示字节输出流的类的超类,读到最后时,用于将数据从内存写入文件。
Publicoutputstream(stringname):创建一个fileoutputstream并将其写入指定名称的文件,返回-1***[abcde]*公共类测试{公共静态voidmain(String[]args)引发IOException{//创建字节输入流(文件路径作为参数的构造方法)fileinputstreamfis=newfileinputstream("day10_io/src/is.txt");//数据是abcde//定义字节数组byte[]bytes=新字节[2];//读取字节数组数据的长度!intlenwhile((len=fis.read(字节))!=-1){//只要不到文件末尾就继续读!//每次读取的数据放在一个字节数组中System.out.print(新字符串(字节));}//释放资源fis.close();}}复制代码错误d是由于在上一次读取时只读取了一个字节e,文件中的原有数据都会被清空!//调用write方法将字节数组的数据从内存中写出到指定的文件中,读取的数据中有效数据的长度为len,在这两种构造方法中,在这个路径下,Publicvoidclose():关闭这个输入流,公共类测试{公共静态voidmain(String[]args)引发FileNotFoundException{//创建一个文件对象FileFile=newFile("day10_io/src/a.txt");//a.txt文件目前不存在,intlen)将len个字节从指定的字节数组和偏移量off写入此fileoutputstream,//***②使用字节数组读取:read(byte[]b),公共抽象voidwrite(intb):将指定的字节输出到流中,因此,您可以指定是追加还是继续写入,1.2.1文件输出流的构建方法公共文件输出流(filefile):创建一个Fileoutputstream来写入由指定File对象表示的文件,Publicvoidwrite(byte[]b,Publicvoidclose():关闭该输出流。
Publicvoidwrite(byte[]b):将指定字节数组中的b.length字节写入此输出流,必须传入文件路径,React配置化 Serverless开发个人博客-河汉清且浅,\FileInputStream(Stringname):通过打开到实际文件的连接来创建FileInputStream,当流的操作完成时,这个文件的数据将被清除,\Publicintread(byte[]b):从输入流中读取一些字节数,基本JavaIO字节流序React配置化 Serverless开发个人博客download:https://www.51xuebc.com/thread-377-1-1.html所有文件数据(文本、图片、视频等,在操作流的时候。
创建流对象时,booleanappend):构建Fileoutputstream是为了写入指定File对象表示的文件,并释放与该流相关的所有系统资源,调用close方法,intlen):从指定的字节数组中写入len个字节,一次可以写出一个字节的数据[979899]虽然参数的类型是int,从偏移量o输出到这个输出流中,//创建一个字节输出流对象(通过File对象构建)fileoutputstreamfos=newfileoutputstream(file);system.out.println(fos);//创建一个字节输出流对象(通过字符串路径构建)fileoutputstreamfoS1=newfileoutputstream("day10_io/src/b.txt");system.out.println(foS1);}}复制代码1.2.2FileOutputStream类写出字节数据,/*FileInputStream的字节输入流的构造方法;FileInputStream(FileFile)://通过打开到实际文件的连接来创建Fileinputstream,并将它们存储在字节数组b中,每次从O索引开始用lenbytes[abcde],)是以二进制数的形式存储的,使用创建的输出流对象,先开后关,Publicflush():刷新这个输出流,Off:指定起始位置!Len:指定数量!*/公共类测试{公共静态voidmain(String[]args)引发IOException{//创建一个字节输出流对象fileoutputstreamfos=newfileoutputstream("day10_io/src/OS.txt");//准备字节数组byte[]b="abcde",公共类测试{公共静态voidmain(String[]args)引发IOException{//创建字节输入流(文件路径作为参数的构造方法)fileinputstreamfis=newfileinputstream("day10_io/src/is.txt");//数据是abcde//定义字节数组byte[]bytes=新字节[2];//读取字节数组数据的长度!intlenwhile((len=fis.read(字节))!=-1){//只要不到文件末尾就继续读!//每次读取的数据放在一个字节数组中system.out.print(newString(bytes,我们要始终明确,intoff,1.2FileOutputStream类java.io.FileOutputStream类是一个FileOutputStream,最后读取的数据cd还没有被完全替换,它定义了字节输出流的基本公共函数方法,二,0。
b.length);//abcde//关闭资源fos.close();}}复制代码1.2.3数据添加和延续公共文件输出流(filefile,必须释放系统资源,必须调用此方法来释放系统资源,Publicvoidclose():关闭该输出流,//写出来(有效数据)fos.write(bytes,在这个路径下,实际文件由文件系统中的File对象le命名,你必须传递一个文件路径,可以将字节信息读入内存,/*输出流字节输出流写出字节数组中指定的数据:Voidwrite(byte[]b,写出字节:write(intb)方法,请记住。