java第八章流与文件课件

上传人:F****n 文档编号:88134887 上传时间:2019-04-19 格式:PPT 页数:34 大小:759.50KB
返回 下载 相关 举报
java第八章流与文件课件_第1页
第1页 / 共34页
java第八章流与文件课件_第2页
第2页 / 共34页
java第八章流与文件课件_第3页
第3页 / 共34页
java第八章流与文件课件_第4页
第4页 / 共34页
java第八章流与文件课件_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《java第八章流与文件课件》由会员分享,可在线阅读,更多相关《java第八章流与文件课件(34页珍藏版)》请在金锄头文库上搜索。

1、计算机科学与技术学院,第八章 流与文件,Stream and File,1.了解流、输入输出的概念 2.掌握常见的输入输出流类的使用 3.熟悉System类,掌握标准输入输出和重新定向输入输出技术 4.掌握用I/O流实现文件读/写,压缩文件读/写的方法,本节学习要点,计算机科学与技术学院,目的地:标准输出设备.如屏幕 磁盘文件 网络连接等,8.1什么是流,8.1.1 基本概念,输入:指的是如何从数据源中获得字节序列,数据源:标准输入设备.如:键盘 磁盘文件 网络连接等,输出:指的是如何将字节序列发送到能接收 数据的目的地,计算机科学与技术学院,在Java中,输入流指的是能够读取一个字节序列的对

2、象;,Java的流类可分为两大部分: File类:用于文件管理 I/O流类:用于文件读写,8.1什么是流,而输出流指的是能够写一个 字节序列的对象,计算机科学与技术学院,File类:封装了对文件系统进行操作的功能 最后修改日期 文件,目录操作等,8.1什么是流,I/O流类:,InputStream和OutputStream是用来存取字节的所有类的根类,Reader和Writer是专门用来读写双字节Unicode的类的根类,计算机科学与技术学院,InputStream和OutputStream只提供了读写字节的方法,要想使用各种形式的输入输出方式,必须扩展其子类,Java从四个抽象类上派生了很多

3、具体类,利用这些类,任何你能想象得到的输入输出形式都可以轻松完成,8.1什么是流,计算机科学与技术学院,API:java.io.InputStream abstract int read() int read(byte b) int read(byte b,int off,int len) long skip(long n) int available() 返回不会阻塞的实际可用字节数 void close(),8.1什么是流,计算机科学与技术学院,void mark(int readlimit) 在当前位置作一个标记 void reset() 返回最近的标记处 boolean markSup

4、ported()如果该流支持 标记则返回true,8.1什么是流,计算机科学与技术学院,API:java.io.OutputStream() abstract int write() int write(byte b) int write(byte b,int off,int len) void close() void flush(),8.1什么是流,计算机科学与技术学院,8.1什么是流,8.1.2 System.in和System.out对象,System.in和System.out是InputStream和OutputStream的一个子类的预定义对象,与之相关的方法: read()-S

5、ystem.in.read( ) print(参数)、println(参数) System.out.println(“请输入一个数据:”);,System.in可以用于从键盘读入 System.out可以将数据输出到显示屏,计算机科学与技术学院,InputStream,用于读取字节数据,FileInputStream,用于从文件上 读取字节,FilterInputStream,用于构成 过滤器流,PipedInputStream,用于线 程之间 通信,BufferedInputStream,支持 缓冲区输入,PushbackInputStream,跟踪中间流,DataInputStream,提

6、供各种方式 的输入形式,8.2 常用的流类,计算机科学与技术学院,8.2.1 文件管理File类,File类的功能十分强大,它可以访问指定文件的所有属性,包括文件名、文件长度、最后修改时间等 还可以用来建立目录、删除文件等,构造方法: File(String path) File(String path,String name) File(File dir, String name),计算机科学与技术学院,API:java.io.File,String getAbsolutePath()返回包含绝对 路径名的字符串 String getCanonicalPath()返回包含规 范路径名的字符串

7、,String getName() String getParent() boolean isDirectory() boolean isFile(),8.2.1 文件管理File类,计算机科学与技术学院,String list()返回File对象下的文件名和子目录名 String list(FilenameFilter filter) 同上,但只有通过过滤器检查的文件和目录才能被返回,boolean mkdir() URL toURL()把File对象转化为一个URL,例:打印指定路径下的子目录结构 FindDirectories.java,8.2.1 文件管理File类,计算机科学与技术学

8、院,8.2.1 文件管理File类,计算机科学与技术学院,用于指定路径的代码: if (args.length = 0) args = new String “ ; try File pathName = new File(args0); String fileNames = pathName.list();,复合成绝对路径: for (int i = 0; i fileNames.length; i+) File f = new File(pathName.getPath(), fileNamesi);,8.2.1 文件管理File类,计算机科学与技术学院,1.FileInputStream

9、 类,构造方法: FileInputStream(String filename) FileInputStream(File file),例: FileInputStream in1 =new FileInputStream(“c:1000hello.java”); 例: File f=new File(“myfile.dat”); FileInputStream in2 =new FileInputStream(f),用于读写磁盘文件,8.2.2 FileInputStream和 FileOutputStream类,计算机科学与技术学院,2.FileOutputStream类,构造方法: F

10、ileOutputStream(String filename) FileOutputStream(File file),例:String name=“c:1000line.txt”; FileOutputStream out=new FileOutputStream(name);,只能读取字节 或字节数组,in1、in2、out,8.2.2 FileInputStream和 FileOutputStream类,计算机科学与技术学院,8.2.3.DataInputStream和DataOputStream类,1. DataInputStream,构造方法: DataInputStream(In

11、putStream in),常用方法: close() readByte() readInt() readUTF() readFloat(),计算机科学与技术学院,2.DataOutputStream类,构造方法: DataOutputStream(OutputStream in),常用方法: close() writeByte() writeInt() writeUTF() writeFloat(),8.2.3.DataInputStream和DataOputStream类,计算机科学与技术学院,3. FileInputStream类能从文件及其它位置上读取字节,而DataIputStrea

12、m类能够把字节合成为常用的数据类型。,可以把两种类结合起来从而构成过滤器流,例:从一个文件中读取一个数字 FileInputStream fin=new FileInputStream(“line.txt”); DataInputstream din=new DataInputStream(fin); int data1=din.readInt();,过滤器,8.2.3.DataInputStream和DataOputStream类,计算机科学与技术学院,8.2.4 BufferedInputStream和BufferedInputStream类,构造方法: BufferedInputStre

13、am(InputStream in) BufferedInputStream(InputStream in,int n) 用来创建一输入缓冲流 BufferedOutputStream(OutputStream out) BufferedOutputStream(OutputStream out,int n) 用来创建一输出缓冲流,用于从一个流中读取字符,但不会每次都导致设备访问,计算机科学与技术学院,例:利用缓冲区从文件中读取数据 DataInputStream din= new DataInputStream (new BufferedInputStream (new FileInputS

14、tream(“line.txt”);,Void unread(int n) 回退一个字节,8.2.4 BufferedInputStream和BufferedInputStream类,计算机科学与技术学院,构造方法: PushbackInputStream (Inputstream in) 构造具有一个字节预先量缓冲流 PushbackInputStream (Inputstream in,int size) 构造一个指定大小的预先缓冲的流,8.2.5 PushbackInputStream 类,用于跟踪中间流的类,计算机科学与技术学院,8.2.6 RandomAccessFile类,通过构造

15、RandomAccessFile类,你可以做任何想对文件进行的操作。,构造方法: RandomAccessFile(String filename,String mode) RandomAccessFile(Filefile,String mode),常用方法: read write系列 public void seek(long pos)throw IOException public int SkipBytes(int n)throw IOException,计算机科学与技术学院,8.2.7 管道类,PipedInputStream类创建是一个输入管道 PipedOutputStream创

16、建是一个输出管道,输出管道与输入管道连接就形成了一个传输数据的通道,使用这样的管道,用户可以在不同的线程间实现数据共享,计算机科学与技术学院,管道模型如图:,线 程 1,管道输出,连 接,管道输入,管道输出,线 程 2,线 程 3,管道输入,连 接,8.2.7 管道类,计算机科学与技术学院,构造输入输出流: PipedInputStream in = new PipedInputStream(); PipedOutputStream out= new PipedOutputStream(),1.将输入与输出连接 connect(PipedOutputStream c) 例: in.connect(out),2.将输出与输入连接connect(PipedInputStream c) out.connect(in),8.2.7 管道类,计算机科学与技术学院,8.2.7 管道类,例:一个简单的例子PipeTest.java,Produc

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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