第15章输入输出流与文件操作

上传人:小** 文档编号:62183089 上传时间:2018-12-18 格式:PPT 页数:19 大小:862KB
返回 下载 相关 举报
第15章输入输出流与文件操作_第1页
第1页 / 共19页
第15章输入输出流与文件操作_第2页
第2页 / 共19页
第15章输入输出流与文件操作_第3页
第3页 / 共19页
第15章输入输出流与文件操作_第4页
第4页 / 共19页
第15章输入输出流与文件操作_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《第15章输入输出流与文件操作》由会员分享,可在线阅读,更多相关《第15章输入输出流与文件操作(19页珍藏版)》请在金锄头文库上搜索。

1、第十五章 输入输出流与文件操作,目 录,重点与难点点拨,输入输出流的分类,目录和文件管理,文件和随机访问,其他常用的流,综合案例,字符流,字节流,经典练习题,本章知识重点,输入输出流的分类,java.io包中流的体系结构,目录和文件管理涉及到的类,输入输出流的概念,本章知识难点,目录和文件管理涉及到的类,流输入及输出的一般过程,输入输出流的分类,Java 流的概念 Java使用流(stream)来执行输入输出(I/O)的功能,流是一 种数据的源头和目的之间的通信途径 标准输入输出 Java系统事先定义好两个流对象,分别与系统的标准输入 和标准输出相联系,它们是System. in和System

2、.out System是Java中一个功能很强大的类,利用它可以获得很 多Java运行时的系统信息。,【例15.1】,输出流(程序写出数据),输入流(程序读入数据),Java流类体系结构1,Java流类体系结构2,Java流类体系结构3,Java流类体系结构4,Java流的概念,输入输出流的分类,目录和文件管理,文件名的处理,File类,文件或目录的生成,文件属性测试,普通文件信息和工具,目录操作,public File(String path):如果path是实际存在的路径,则该File对象表示的是目录;如果path是文件名,则该File对象表示的是文件。 public File(Strin

3、g path,String name):path是路径名,name是文件名(不可为空)。 public File(File dir,String name):dir是路径名,name是文件名。,String getName( ):得到一个文件的名称(不包括路径)。 String getPath( ):得到一个文件的路径名。 String getAbsolutePath( ):得到一个文件的绝对路径名。 String getParent( ):得到一个文件的上一级目录名。 String renameTo(File newName):将当前文件名更名为给定文件的完整路径。,【例15.2】,bool

4、ean exists( ):测试当前File对象所指示的文件或目录是否存在,若存在,返回True。 boolean createNewFile():创建当前文件。 boolean canWrite( ):测试当前文件是否可写。 boolean canRead( ):测试当前文件是否可读。 boolean isFile( ):测试当前文件是否是文件(不是目录)。 boolean isDirectory( ):测试当前文件是否是目录,若为目录则返回True。,【例15.3】,long lastModified( ):得到文件最近一次修改的时间。 long length( ):得到文件的长度,以字节

5、为单位,若不存在,返回0。 boolean delete( ):删除File对象代表的文件或目录,目录需为空。删除成功,返回True。,boolean mkdir():生成一个由该对象指定的路径(新目录),若成功,返回True。 boolean mkdirs():生成一个新的目录,包含子目录。若成功,返回true。 boolean renameTo(File newName):将当前File对象所代表的路径名改为newName所代表的路径名。若成功,返回true。 String list():列出当前目录下的文件。 File listFiles():得到该对象所代表的目录下的File对象数组。

6、 String toString():得到抽象路径表示法。,【例15.4】,File类的应用,【例15.5】,【例15.6】,字节流,顺序读/写文件(FileInputStream与FileOutputStream),FileInputStream类从磁盘文件读取数据。常用的构造方法有: FileInputStream(String name):打开文件name用来读取数据。 如:FileInputStream f =new FileInputStream(“c:/test.txt“); FileInputStream(File file):打开文件file用来读取数据。 如:File f=n

7、ew File(“c:/test.txt“); FileInputStream f1=new FileinputStream(f); 将FileDescriptor对象作为其参数。 如:FileDescriptor() fd=new FileDescriptor(); FileinputStream f2=new FileInputstream(fd);,FileOutputStream类创建文件(如果文件不存在),并将数据写入文件。FileOutputStream类常用的构造方法有: FileOutputStream(String name):打开文件name用来写入数据。 如:FileOu

8、tputStream f=new FileOutputStream (“c:/test.txt“); FileOutputStream(File file):打开文件file用来写入数据。 如:File f =new File(“c:/test.txt“); FileOutputStream f1=new FileOutputStream (f); FileOutputStream(String name,Boolean append):打开文件name用来写入数据,若append为true,则写入的数据会加到原有文件后面,否则,覆盖原有的文件。 如:FileOutputStream f =n

9、ew FileOutputStream(“c:/test.txt“,true); 将FileDescriptor对象作为其参数。 FileDescriptor() fd =new FileDescriptor(); FileOutputStream f =new FileOutputStream(fd);,【例15.7】,字节流,字节流,ByteArrayInputStream 将字节数组用作源,并在该数组中执行读操作 它有两种构造方法。第一种构造方法将字节数组作为参数。 ByteArrayInputStream(byte buffer):生成一个字节数组的输入流,并指定一个字节数组buffe

10、r为此输入流的流缓冲区。 如:ByteArrayInputStream b =new ByteArrayInputStream(buf); 另外一种构造方法有助于从指定的字节数组来创建ByteArrayInputStream。 ByteArrayinputStream b =new ByteArrayinputStream(buf,off,len); 其中off 是要读取的第一个字节的偏移,len 是要读取数组的字节数;,ByteArrayOutputStream有2种构造方法 ByteArrayOutputStream():生成一个字节数组的输出流,其缓冲区的默认初始大小为32字节,若有需要

11、,缓冲区的大小会随之增加。 如:ByteArrayOutPutStream b=new ByteArrayOutputStream(); ByteArrayOutputStream(int size):创建32个自己的缓冲器用于储存数据,但分配size字节的初始大小给此缓冲区。 如:ByteArrayOutputStream b1=new ByteArrayOutputStream(size);创建大小为size的缓冲器,ByteArrayOutputStream的一些常用方法: int size():返回此流缓冲区的大小。 byte toByteArray():生成一个新的字节数组,并将流的

12、内容复制到此字节数组。 String toString():将流的内容转换为String对象。,【例15.8】,字节流,缓冲区流BufferedInputStream和BufferedOutputStream,BufferedInputStream类的构造方法和方法: BufferedInputStream(InputStream in):构造一个BufferedInputStream。 BufferedInputStream(InputStream in, int size):构造一个具有给定的缓冲区大小的BufferedInputStream。 int available():得到可以从这

13、个输入流读取的字节数。 void close():关闭流。 void mark(int readlimit):在这个输入流的当前位置做标记。 boolean markSupported():检查这个输入流是否支持mark和reset方法。 int read():读取数据的下一个字节。 int read(byte b, int off, int len):从这个字节输入流的给定偏移量处开始读取字节,存储到给定的字节数组。 void reset():将缓冲区重新设置到加标记的位置。 long skip(long n):跳过n个字节的数据。,BufferedOutputStream类的构造方法和方法

14、: BufferedOutputStream(OutputStream out):构造一个BufferedOutputStream。 BufferedOutputStream(OutputStream out, int size):构造一个具有给定的缓冲区大小的BufferedOutputStream。 void flush():刷新这个流。 void write(byte b, int off, int len):将给定的字节数组写到这个缓冲输出流。 void write(int b):将给定的字节写到这个缓冲输出流。,【例15.9】,字符流,字符流,InputStreamReader和Ou

15、tputStreamWriter,InputStreamReader类的构造方法和方法: InputStreamReader(InputStream in):构造一个InputStreamReader。 InputStreamReader(InputStream in, String enc):使用命名的字符编码构造一个InputStreamReader。 void close():关闭流。 String getEncoding():得到字符编码的名称。 int read():读取一个字符。 int read(char cbuf, int off, int len):将字符读到数组中。 boo

16、lean ready():如果这个流已准备好,返回True。,OutputStreamWriter类的构造方法和方法: OutputStreamWriter(OutputStream out):构造一个OutputStreamWriter。 OutputStreamWriter(OutputStream out, String enc):使用命名的字符编码构造一个OutputStreamWriter。 void close():关闭流。 void flush():刷新流。 String getEncoding():得到这个流使用的字符编码的名称。 void write(char cbuf, int off, int len):写字符数组的一部分。 void write(int c):写一个字符。 void write(String str, int off, int len):写一个字符串的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号