第9讲-Java的输入输出流-优质课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第9讲-Java的输入输出流-优质课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 输入输出 优质 课件
- 资源描述:
-
1、1File类字节流IO流概述字符流随机访问流2v 流的概念流的概念 流:是同一台计算机或网络中不同计算机之间有序运动的数据序列。输入数据流:外设流入计算机的数据序列数据流 输出数据流:计算机流向外设的数据序列数据序列:可以是原始的二进制字节数据,也可以是经过特定编码处理的有格式的数据按照数据的输入输出方式分为:输入流(按照数据的输入输出方式分为:输入流(Input Input StreamStream)和输出流()和输出流(Output StreamOutput Stream)流的分类流的分类注意:注意:对于一些设备来说,键盘就是标准的输入设备,程序要接受它提供的数据必须使用输入流,而显示器是
2、标准的输出设备,必须使用输出流向显示器输出数据。但输入流和输出流也不是绝对不变的,例如对于一个文件而言,当向其中写入数据时,它就是数据的接受者,需要使用输出流;当从该文件读取数据时,它就是数据的提供者,需要使用输入流。4按照数据处理的方式分为字节流和字符流。按照数据处理的方式分为字节流和字符流。流的分类流的分类注意:注意:如何区分字节流和字符流呢?从Java IO流类名的命名可以轻易地区分它们。一般来说,如果一个IO流的类名以Stream结尾,说明它是一个字节流,如FileInputStream、DataOutputStream等。如果一个IO流的类名以Reader或Writer结尾,说明它是
3、一个字符流,如BufferedReader,FileWriter等。5按照流的建立方式和工作原理分为节点流和过滤按照流的建立方式和工作原理分为节点流和过滤流。流。节点流类是指直接在输入输出媒介之上建立的流,一般来说标准流、非过滤字节流类可以作为节点流使用,如FileInputStream。而过滤流类是在节点流类基础上在功能上进行扩展,此时它必须先以某一个节点流对象作为过滤流的来源(即作为该过滤流的参数),然后可以修改已经读出或者写入的数据,甚至还可以简单地利用自身提供的附加方法将已经读出或者写入的数据转化成其他格式。1.IO流概述流的分类流的分类注意:注意:无论按照什么样的分类方式,针对每一个
4、具体的Java IO流类都可以把它们归属于相应的分类方式。如PipedOutputStream类是一个字节输出节点流,而BufferedReader则是一个字符输入过滤流。61.IO流概述Java IOJava IO流体系结构流体系结构71.IO流概述Java IOJava IO流体系结构流体系结构8File类字节流IO流概述字符流随机访问流9Java中每个文件和目录也是对象,每个File类的对象都表示是一个文件或目录。调用它的方法可以获得该文件或目录的属性,完成对文件和目录的操作,如创建、删除等。2.File类FileFile类类构造方法构造方法说明说明File(String filenam
5、e)根据文件的路径名创建一个新的File对象File(String parent,String child)根据文件路径名和文件名创建一个新的File对象File(File parent,String child)根据指定目录的File对象和文件名创建一个新的File对象File(URI uri)根据URI所对应的路径名创建一个新的File对象102.File类FileFile类类File file1=new File(Hello.java);File file2=new File(/);File file3=new File(file2,Hello.java);File file4=new
6、File(/,Hello.java);注意:注意:在Unix/Linux操作系统下,路径分隔符为“/”,并且系统的根目录为“/”;而在Windows和DOS下的路径分隔符为“”,而且Windows/DOS下每个磁盘分区就是一个文件系统,因此Windows/DOS可以有多个根目录。Java对这两种分隔符都支持。但是如果使用“”作为分隔符,注意要以转义字符“”来代替,例如以“c:sunjdk”表示“c:sunjdk”。11FileFile类类方法方法说明说明public boolean canRead()测试应用程序是否可以读取此抽象路径名表示的文件public boolean canWrite(
7、)测试应用程序是否可以修改此抽象路径名表示的文件public boolean exists()测试此抽象路径名表示的文件或目录是否存在public boolean isAbsolute()测试此抽象路径名是否为绝对路径名public boolean isDirectory()测试此抽象路径名表示的文件是否是一个目录public boolean isFile()测试此抽象路径名表示的文件是否是一个标准文件public boolean isHidden()测试此抽象路径名指定的文件是否是一个隐藏文件public long lastModified()返回此抽象路径名表示的文件最后一次被修改的时间p
8、ublic long length()返回由此抽象路径名表示的文件的长度;若目录则返回值不确定public boolean createNewFile()当指定的文件不存在时,使用此访问创建一个指定文件public boolean delete()删除此抽象路径名表示的文件或目录。若目录则必须为空才能删除12FileFile类类public void deleteOnExit()在虚拟机终止时,请求删除此抽象路径名表示的文件或目录public String list()返回由此抽象路径名中的文件和目录名所组成字符串数组public File listFiles()返回一个抽象路径名数组publ
9、ic boolean mkdir()创建此抽象路径名指定的目录public boolean renameTo(File dest)重新命名此抽象路径名表示的文件public boolean setLastModified(long t)设置由此抽象路径名所指定的文件或目录的最后一次修改时间public boolean setReadOnly()设置此抽象路径名指定的文件或目录为只读public static File listRoots()列出可用的文件系统根目录public int compareTo(File pathname)按字母顺序比较两个抽象路径名public String get
10、Name()返回由此抽象路径名表示的文件或目录的名称public String getParent()返回此抽象路径名的父路径名,如果此路径名无父目录则返回nullpublic File getParentFile()返回此抽象路径名的父路径名,如果此路径名无父目录则返回null13public String getPath()返回此抽象路径名public String getAbsolutePath()返回抽象路径名的绝对路径名的字符串形式public File getAbsoluteFile()返回抽象路径名的绝对路径名形式public String getCanonicalPath()返
11、回抽象路径名的规范路径名字符串public File getCanonicalFile()返回此抽象路径名的规范形式public long getFreeSpace()以字节为单位返回当前磁盘的剩余空间public long getTotalSpace()以字节为单位返回当前磁盘的总空间public long getUsableSpace()以字节为单位返回当前磁盘的可用空间FileFile类类14File类字节流IO流概述字符流随机访问流15字节流类是专门处理以字节为传输单位的IO流类。我们知道计算机中的数据处理基本上都是以字节为单位进行处理,这类数据保存的文件也称为“二进制文件”,如果要读
12、写这些二进制文件,就需要使用Java中的字节流对象。InputStream和OutputStream分别是输入字节流与输出字节流的抽象父类。16InputStreamInputStream和和OutputStreamOutputStream方法方法说明说明public int available()返回当前可读的字节数public void close()关闭输入流以释放占用的系统资源public void mark(int readlimit)在输入流的当前位置设置一个标记(相当于放一个书签)public boolean markSupported()测试输入流是否支持mark()和rese
13、t()方法public abstract int read()从输入流中读取下一个字节的数据,返回该字节的ASCII码值,如果到文件的末尾,则返回-1public int read(byte b)从输入流中读取一部分字节并将它们存放到字节数组b中,如果读取成功返回读取字节的个数,如果到文件的末尾返回-1public int read(byte b,int off,int len)从输入流中读取len个字节将它们存放到字节数组b中,并且存放到b的从off位置后面。如成功返回读取字节的个数,否则返回-1public void reset()重新设置标记到输入流中最近一次使用mark()方法指定的位
14、置。该方法需要和mark()方法结合使用public long skip(long n)从当前输入流中跳过并忽略掉n个字节的输入。返回读取的字节数 InputStream类的主要方法类的主要方法17InputStreamInputStream和和OutputStreamOutputStream OutputStream类的主要方法类的主要方法方法方法说明说明public void close()关闭输出流并释放占用的系统资源public void flush()刷新输出流并强制写出所有缓冲区的数据public abstract void write(int b)将一个指定的字节数据写到输出流中
15、public void write(byte b)将一个字节数组b中的全部数据写到输出流中public void write(byte b,int off,int len)将一个字节数组b中从off位置开始长为len的字节写到输出流18字节流类字节流类分类与作用分类与作用BufferedInputStream缓冲流,从缓冲区读取输入流BufferedOutputStream缓冲流,向缓冲区写入输出流ByteArrayInputStream访问数组,从字节数组中读取输入流ByteArrayOutputStream访问数组,向字节数组中写入输出流DataInputStream处理基本数据类型,读取
16、Java基本数据类型方法的输入流DataOutputStream处理基本数据类型,写入Java基本数据类型方法的输出流FileInputStream访问文件,读取磁盘文件的输入流FileOutputStream访问文件,向磁盘文件中写入数据的输出流FilterInputStream抽象父类过滤流包括BufferedInputStream、DataInputStream和PushbackInputStreamFilterOutputStream抽象父类过滤流包括BufferedInputStream和DataInputStreamObjectInputStream对象流,读取输入流中的对象数据O
17、bjectOutputStream对象流,向输出流中写入对象数据PushbackInputStream推回输入流,向输入流返回一个字节的输入流PipedInputStream管道输入流PipedOutputStream管道输出流PrintStream打印流,包括print()、printf()、println()等方法的输出流SequenceInputStream顺序输入流,由两个或两个以上的顺序读取的输入流组成的输入流常用的输入输出字节流子类常用的输入输出字节流子类InputStreamInputStream和和OutputStreamOutputStream19标准流标准流 语言包java
18、.lang中的System类管理标准输入/输出流和错误流。System.in,从InputStream中继承而来,用于从标准输入设备中获取输入数据(通常是键盘)。System.out,从PrintStream中继承而来,把输出送到缺省的显示设备(通常是显示器)。System.err,也是从PrintStream中继承而来,把错误信息送到缺省的显示设备(通常是显示器)。每当每当main方法被执行时,就自动生成上述三个对象。方法被执行时,就自动生成上述三个对象。3.字节流20public class ReadFromKB public static void main(String args)tr
19、y byte bArray=new byte128;String str;System.out.println(Enter something Using Keyborad:);System.in.read(bArray);str=new String(bArray,0);System.out.print(You entered:);System.out.println(str);catch(IOException ioe)System.out.println(ioe.toString();标准流(例子)标准流(例子)从键盘中获取数据从键盘中获取数据21构造方法构造方法说明说明FileInpu
20、tStream(File file)根据File类对象创建一个文件字节输入流对象FileInputStream(String name)根据字符串name创建一个文件字节输入流对象,name代表路径和文件名FileInputStreamFileInputStream和和FileOutputStreamFileOutputStreamFileInputStream fis=new FileInputStream(c:Hello.java);File file=new File(c:Hello.java);FileInputStream fin=new FileInputStream(file);
21、FileInputStream类的主要构造方法类的主要构造方法22FileInputStreamFileInputStream和和FileOutputStreamFileOutputStream构造方法构造方法说明说明FileOutputStream(File file)创建一个向file中写入数据的文件输出流FileOutputStream(File file,boolean append)创建一个是否向file尾部追加数据的文件输出流FileOutputStream(String name)创建一个向name中写入数据的输出文件流FileOutputStream(String name,b
22、oolean append)创建一个是否向name尾部追加数据的输出文件流FileOutputStream类的构造方法类的构造方法FileOutputStream fos1=new FileOutputStream(f1.txt);FileOutputStream fos2=new FileOutputStream(f2.txt,true);FileOutputStream fos3=new FileOutputStream(new File(f3.txt);FileOutputStream fos4=new FileOutputStream(new File(f4.txt),false);2
23、3java.io包中提供了FilterInputStream类和FilterOutputStream类分别对其他输入/输出流进行特殊处理,它们在读/写数据的同时可以对数据进行特殊处理。另外它们还提供了同步机制,使得某一时刻只有一个线程可以访问一个输入/输出流。FilterInputStream类和FilterOutputStream类都是抽象类,因此它们均不能实例化对象。FilterInputStream类有3个子类,它们分别是BufferedInputStream、DataInputStream和PushbackInputStream;FilterOutputStream类也有3个子类,分别
24、是BufferedOutputStream、DataOutputStream和PrintStream。过滤字节流过滤字节流24BufferedInputStream和BufferedOutputStream类称为缓冲字节流,它引入了针对内存缓冲区的操作,从而提高了读写数据的效率。BufferedInputStreamBufferedInputStream和和BufferedOutputStreamBufferedOutputStream构造方法构造方法说明说明BufferedInputStream(InputStream in)创建一个缓冲输入流并连结节点输入流in,缓冲区默认大小为32个字节
25、BufferedInputStream(InputStream in,int size)创建一个缓冲输入流并连结节点输入流in,缓冲区默认大小为size个字节BufferedOutputStream(OutputStream out)创建一个新的缓冲输出流,将数据写入到节点输出流outBufferedOutputStream(OutputStream out,int size)创建一个新的缓冲输出流,将缓冲区大小为size字节的数据写入到节点输出流out25import java.io.*;public class BufferedInputStreamDemo public static v
展开阅读全文