Java IO中字节输入输出流的示例分析
导读:本文共2641.5字符,通常情况下阅读需要9分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 讲的是字节输入输出流:InputStream、OutputSteam(下图红色长方形框内),红色椭圆框内是其典型实现(FileInputSteam、FileOutStream) 1、字节输出流:OutputStreampublicabstractclassOutputStream extendsObject implementsClos... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。讲的是字节输入输出流:InputStream
、OutputSteam
(下图红色长方形框内),红色椭圆框内是其典型实现(FileInputSteam
、FileOutStream
)
1、字节输出流:OutputStream
publicabstractclassOutputStream extendsObject implementsCloseable,Flushable
这个抽象类是表示字节输出流的所有类的超类。 输出流接收输出字节并将其发送到某个接收器。
方法摘要:
下面我们用 字节输出流 OutputStream
的典型实现 FileOutputStream
来介绍:
//1、创建目标对象,输出流表示把数据保存到哪个文件。不写盘符,默认该文件是在该项目的根目录下Filetarget=newFile("io"+File.separator+"a.txt");//2、创建文件的字节输出流对象,第二个参数是Boolean类型,true表示后面写入的文件追加到数据后面,false表示覆盖OutputStreamout=newFileOutputStream(target,true);//3、具体的IO操作(将数据写入到文件a.txt中)/***voidwrite(intb):把一个字节写入到文件中*voidwrite(byte[]b):把数组b中的所有字节写入到文件中*voidwrite(byte[]b,intoff,intlen):把数组b中的从off索引开始的len个字节写入到文件中*/out.write(65);//将A写入到文件中out.write("Aa".getBytes());//将Aa写入到文件中out.write("ABCDEFG".getBytes(),1,5);//将BCDEF写入到文件中//经过上面的操作,a.txt文件中数据为AAaBCDEF//4、关闭流资源out.close();System.out.println(target.getAbsolutePath());
2、字节输入流:InputStream
publicabstractclassInputStream extendsObject implementsCloseable
这个抽象类是表示输入字节流的所有类的超类。
方法摘要:
下面我们用 字节输出流 InputStream
的典型实现 FileInputStream
来介绍:
//1、创建目标对象,输入流表示那个文件的数据保存到程序中。不写盘符,默认该文件是在该项目的根目录下//a.txt保存的文件内容为:AAaBCDEFFiletarget=newFile("io"+File.separator+"a.txt");//2、创建输入流对象InputStreamin=newFileInputStream(target);//3、具体的IO操作(读取a.txt文件中的数据到程序中)/***注意:读取文件中的数据,读到最后没有数据时,返回-1*intread():读取一个字节,返回读取的字节*intread(byte[]b):读取多个字节,并保存到数组b中,从数组b的索引为0的位置开始存储,返回读取了几个字节*intread(byte[]b,intoff,intlen):读取多个字节,并存储到数组b中,从数组b的索引为0的位置开始,长度为len个字节*///intread():读取一个字节,返回读取的字节intdata1=in.read();//获取a.txt文件中的数据的第一个字节System.out.println((char)data1);//A//intread(byte[]b):读取多个字节保存到数组b中byte[]buffer=newbyte[10];in.read(buffer);//获取a.txt文件中的前10个字节,并存储到buffer数组中System.out.println(Arrays.toString(buffer));//[65,97,66,67,68,69,70,0,0,0]System.out.println(newString(buffer));//AaBCDEF[][][]//intread(byte[]b,intoff,intlen):读取多个字节,并存储到数组b中,从索引off开始到lenin.read(buffer,0,3);System.out.println(Arrays.toString(buffer));//[65,97,66,0,0,0,0,0,0,0]System.out.println(newString(buffer));//AaB[][][][][][][]//4、关闭流资源in.close();
3、用字节流完成文件的复制
/***将a.txt文件复制到b.txt中*///1、创建源和目标FilesrcFile=newFile("io"+File.separator+"a.txt");FiledescFile=newFile("io"+File.separator+"b.txt");//2、创建输入输出流对象InputStreamin=newFileInputStream(srcFile);OutputStreamout=newFileOutputStream(descFile);//3、读取和写入操作byte[]buffer=newbyte[10];//创建一个容量为10的字节数组,存储已经读取的数据intlen=-1;//表示已经读取了多少个字节,如果是-1,表示已经读取到文件的末尾while((len=in.read(buffer))!=-1){//打印读取的数据System.out.println(newString(buffer,0,len));//将buffer数组中从0开始,长度为len的数据读取到b.txt文件中out.write(buffer,0,len);}//4、关闭流资源out.close();in.close();
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
Java IO中字节输入输出流的示例分析的详细内容,希望对您有所帮助,信息来源于网络。