Java数据流PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
write
输出文件
输入文件 read
文件I/O操作异常
• 类的实例对象,如果所指定的文件不存在,产生 异常
• 类的实例对象,如果所指定的文件不存在,则创 建一个新文件;如果存在,那么新写入的内容将 会覆盖原有数据
• 如果在读、写或生成新文件时发生错误,则会产 生IOException异常
文件数据流
主要数据操作方法
• 输入数据流InputStream中提供的主要数据操作方 法:
• int read():读一个整数 • int read(byte b[ ]):读多个字节到数组中 • int read(byte[ ] b,int off,int len):从何位置开始
填入多少字节
• void close()
• 将它们与文件流相接
• in=new
•
(“”);
• BufferedInputStream bin=
•
new BufferedInputStream(in,256)
缓冲区数据流
• 只有缓冲区满时,才会将数据送到输出流. • Java在输出数据流中,当对方尚未将数据取走时,
程序就会被阻塞. • 有时要人为地将尚未填满的缓冲区中的数据送
–执行完read()操作后,调用方法reset()将回到输入数据 流中被标记的位置
输出数据流
• 输出数据流(Output Stream)是指只能写不能读 的流,用于从计算机中输出数据
• java.io包中所有输出数据流大多是从抽象类 OutputStream继承而来
• 属于OutputStream类的方法有: • write(int b):将一个整数输出到流中 • write(byte b[ ]):将数组中的数据输出到流中 • write(byte b[ ], int off,int len):将数组b中从off
基本的I/O数据流
▪ 按照功能划分为两种基本的流:输入流和输出流 –输入流: 只能从中读取数据,而不能向其写出 数据 – 输出流: 只能向其写出数据,而不能从中读取 数据 –输入和输出流可以被连接到文件、网络套接字 或内存缓冲区。
字符流和字节流
▪ 按处理数据的单位划分,Java支持两 种基本 的流类型:字节流和字符流
指定的位置开始len长度的数据输出到流中 • void flush():将缓冲区中的数据强制送出 • void close():关闭流.
Baidu Nhomakorabea
基本字节数据流类
• 文件数据流
–包括和, –用来进行文件的I/O处理,其数据源都应当是文件 • 对文件操作要定义文件流 • 类用来打开一个输入文件 • 类用来打开一个输出文件
出,使用flush()方法.
文件
数据输入输出流
• 文件流和缓冲区流的处理对象是字节或字节数组,利用数据输入 输出流可以实现对文件的不同数据类型的读写。
• DataInputStream和DataOutputStream:一种较为高级的数据输
入输出方式,除了字节和字节D数a组ta,I还n可pu以tS处tr理eainmt,的flo方at,法bo与olean
• 文件对象的建立: File fp=new File(“temp”);
• 文件流的建立: • in=new (fp); • out=new
(fp); • 输入流的参数是用于输入的文件名 • 输出流的参数是用于输出的文件名 • 例:文件拷贝(注意要捕获文件异常)
输入流 输出流
import java.io.*; class { public static void main(String args[])
• boolean markSupported()
–用于指示数据流是否支持回推(反向读取)操作,当数据 流支持mark()和reset()方法时返回true,反之返回false
• void mark(int markarea)
–标记数据流的当前位置,并划出一个缓冲区,其大小 至少为指定参数的大小
• void reset()
}catch(IOException e) { System.err.println(": "+e);
}}}
缓冲区数据流
• 增加缓冲区流,减少访问硬盘的次数,提高效率
输入缓冲区 输出缓冲区
输入流
输出流
文件
文件流
缓冲区流
缓冲区数据流
• 缓冲区流:
• BufferedInputStream和 BufferedOutputStream
{ try{ File(”"); File(”");
fis=new (inFile);
fos=new (outFile);
int c; while((c=fis.read())!=-1) fos.write(c); fis.close(); fos.close();
}catch( e) { System.out.println(": "+e);
第7讲 Java数据流
主要内容
数据流的基本概念 基本字节数据流类 基本字符流 文件的处理
数据流的基本概念
为进行数据的输入/输出操作,Java中把不同的输 入/输出源(键盘、文件、网络连接等)抽象表述为 “流”(stream)。 java.io包中定义了多个流类型(类或抽象类)来实 现输入/输出功能 . 在Java 1.1之前,java.io包中的流只有普通的字 节流,以byte为基本处理单位 . Java 1.1开始,在java.io包中加入了专门处理字 符流的类,使Java语言对字符流的处理更加方便 和有效。
输入 输出
字节流 InputStream OutputStream
字符流 Reader Writer
输入数据流
• 输入数据流(Input Stream)是指只能读不能写 的数据流,用于向计算机内输入信息而用
• java.io包中所有输入数据流都是由抽象类 InputStream继承而来
• 从数据流中读取数据时,必须有一个数据源与该 数据流相连
–关闭数据流,同时释放与该数据流相关的资源 –也可以由运行时系统自动关闭
• int available()
–返回从数据流中读取的字节数(实际的读操作所读得 的字节数可能大于该返回值)
主要数据操作方法
• long skip(long l)
–跳过数据流中指定数量的字节不读,返回值表示实际 跳过的字节数