当前位置: 首页 > 科技观察

字节流、InputStream类、OutputStream类、标准输入System.in和标准输出System.out

时间:2023-03-15 14:45:12 科技观察

大家好,我是Java进阶。前言在很多应用中,需要实现与设备的数据传输,比如通过键盘进行输入。输出设备如显示器,数据传输抽象表示不同输入输出设备中的“流”,程序通过输出输入设备以流的形式进行数据传输。本文主要学习Java的字节流,小编带大家一起学习!一、字节流1、什么是字节流?在我们的计算中,无论是文本、图片、视频等,这些文件都是以二进制的形式存在的,IO流提供了一系列用于字节输入输出的流,称为字节流。2、数据流可分为字节输入流和字节输出流。3、输入流表示从其他设备流入计算机的数据,输出流表示从计算机流向外部设备的数据。4、Java语言处理输入输出数据的功能见java.io包。二、InputStream类1.InputStream类是一个抽象类,作为字节输入流的直接或间接父类。2、InputStream类的常用方法:(1)publicintread()方法:从输入流中读取下一个字节的数据,转换为0到255之间的整数,然后返回一个整数。(2)publicintread(byte[]b)方法:从输入流中读取若干个字节,将这些字节存储在参数b指定的字节数组中,然后返回一个表示读取字节数的整数(3)publicintread(byte[]b,intoff,intlen)方法:表示从数组b的off位置开始读取len个字节。off表示字节数组的起始索引开始存储数据,len表示读取的字节数。(4)publicvoidclose()方法:表示关闭这个输入流,释放与这个流相关的所有系统资源。上面介绍了InputStream类的常用方法,intread()、intread(byte[]b)、intread(byte[]b,intoff,intlen)方法用于读取数据,intread()方法它从输入流中一个一个地读取字节。intread(byte[]b)和intread(byte[]b,intoff,intlen)方法一次读取数组形式的几个字节。提高了读取数据的效率。close()方法是关闭流。三、OutputStream类1.OutputStream类是一个抽象类,作为字节输出流的直接或间接父类。2、OutputStream类的常用方法:(1)publicvoidwrite(intb)方法:向流中写入一个整型数据。(2)publicvoidwrite(byte[]b)方法:将参数b指定的字节数组的所有字节写入输出流。(3)publicvoidwrite(byte[]b,intoff,intlen)方法:以字节方式向流中写入数据,off表示起始位置,len为长度。(4)publicvoidclose()方法:表示关闭这个输入流,释放与这个流相关的所有系统资源。4、标准输入System.in1.System.in是一个字节输入流类InputStream对象in,实现标准输入,其中它的read()方法接受来自键盘的数据,当出现I/O错误时,抛出一个IOException被抛出。2、Scanner类可以使用in初始化一个对象:Scannersc=newScanner(System.in)5、标准输出System.out1.System.out用于屏幕输出。常用的调用方式有print(表示不换行)和println(表示换行),这两个方法支持Java的任何基本类型作为参数。2、打印和println示例:System.out.print("helloworld!");//表示不换行System.out.println("helloworld");//表示换行六、InputStream读取文件1.使用InputStream对文件的操作,在读取文件内容的时候,创建一个数组来存放文件的内容。2.在Text文件夹中准备一个test05.txt文件,内容为《Java进阶学习交流》,创建一个输入流,参数为一个文件,然后创建一个字节数组,长度为1024。定义一个int类型temp变量保存读取的内容,读取未完成时写一个while循环继续读取,读取完毕关闭数据流。3、实例实现:(1)准备一个test05.txt文件,写入内容如下图:(2)实现代码:importjava.io.*;publicclassP04{publicstaticvoidmain(String[]args)throwsException{//TODOAuto-generatedmethodstubFilef=newFile("text/test05");InputStreamin=newFileInputStream(f);byteb[]=newbyte[1024];intnum=0;inttemp=0;//定义一个int类型的temp变量来保存readContentwhile((temp=in.read())!=-1){//如果没有读完,继续读内容b[num]=(byte)temp;num++;}in.close();System.out.println("读取的内容为:"+newString(b,0,num));}}运行结果如下:七、总结本文主要介绍字节流,InputStream类,OutputStream类,标准输入System.in和标准输出System.out,InputStream读取文件。在IO流中,提供了一系列用于字节输入输出的流,称为字节流。InputStream类是一个抽象类,充当字节输入流的直接或间接父类。OutputStream类是一个抽象类,充当字节输出流的直接或间接父类。System.in是一个字节输入流类InputStream对象in,用于实现标准输入,其中它的read()方法接受来自键盘的数据,当出现I/O错误时,抛出IOException。System.out用于屏幕输出,常用的调用方式有print(表示无换行)和println(表示换行)。InputStream读取带有示例的文件以帮助理解其用法。希望本文的学习对您有所帮助!