Java高级全册精品完整课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Java高级全册精品完整课件.ppt》由用户(金钥匙文档)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 高级 精品 完整 课件
- 资源描述:
-
1、JAVA IO 主要内容主要内容 文件操作文件操作/随机访问文件(非流式)随机访问文件(非流式) I/O流概述流概述 字节流字节流 字节流的基类字节流的基类 文件流文件流 过滤流过滤流 标准流标准流 字符流字符流 对象流对象流 管道流管道流 内存读写流内存读写流 顺序输入流顺序输入流 文件操作文件操作/随机访问文件随机访问文件 文件操作:文件操作:File 文件的创建: File(String pathname) File f=new File(“c:datatemp.dat”); File f=new File(“data/temp.dat”); File f=new File(“temp.
2、dat”); File(String parent, String child) File f=new File(“c:data” ,“temp.dat”); File f=new File(“data ” ,“ temp.dat”); File(File parent, String child) File f=new File(new File(“c:/data”) ,“temp.dat”); File f=new File(new File(“data ”) ,“ temp.dat”); 文件操作文件操作/随机访问文件随机访问文件 文件操作:文件操作:File 获取文件信息 boolea
3、n canRead() boolean canWrite() boolean setReadOnly() boolean exists() boolean isDirectory() boolean isFile() boolean isHidden() long lastModified() boolean setLastModified(long time) long length() String list() String list(FilenameFilter filter) File listFiles() File listFiles(FilenameFilter filter)
4、 File listFiles(FileFilter filter) static File listRoots() boolean mkdir() boolean mkdirs() (粉色的方法在JDK1.2之后才支持) 文件操作文件操作/随机访问文件随机访问文件 文件操作:文件操作:File boolean createNewFile() static File createTempFile(String prefix, String suffix) static File createTempFile(String prefix, String suffix, File director
5、y) boolean delete() void deleteOnExit() boolean renameTo(File dest) 文件操作文件操作/随机访问文件随机访问文件 文件操作:文件操作:File String getName() File getParentFile() String getParent() String getPath() boolean isAbsolute() File getAbsoluteFile() String getAbsolutePath() File getCanonicalFile() 抽象路径名的规范形式 String getCanonic
6、alPath()抽象路径名的规范路径名字符 串 文件操作文件操作/随机访问文件随机访问文件 文件操作:文件操作:File I/O流概述流概述 大部分程序都需要输入/输出处理,比如从键盘读取数 据、向屏幕中输出数据、从文件中读或者向文件中写数 据、在一个网络连接上进行读写操作等。在Java中,把 这些不同类型的输入、输出源抽象为流(Stream),而 其中输入或输出的数据则称为数据流(Data Stream), 用统一的接口来表示,从而使程序设计简单明了。 数据流数据流 起起 点点 终终 点点 文件文件,字符串字符串 存储区存储区(内存内存) 文件文件 网络端点网络端点 程序程序 终端终端 文件
7、文件 网络端点网络端点 程序程序 终端终端 I/O流概述流概述-流的用途流的用途 学习流有以下的用途:学习流有以下的用途: 文件、网络、内存、标准输入输出的数据读写都 需要用到流。 I/O流概述流概述-流的读写过程流的读写过程 读取流 写入流 I/O流概述流概述-流的分类流的分类 按照流向分类: 流一般分为输入流(Input Stream)和输出流(Output Stream)两类,但这种划分并不是绝对的。比如一个文件, 当向其中写数据时,它就是一个输出流;当从其中读取数 据时,它就是一个输入流。当然,键盘只是一个输入流, 而屏幕则只是一个输出流。 输入流:数据提供者,可从中读取数据出来输入流
8、:数据提供者,可从中读取数据出来 输出流:数据接收者,可往其中写数据输出流:数据接收者,可往其中写数据 按传递数据类型分类: 在JDK1.1之前,java.io包中的流只有普通的字节流字节流(以 byte为基本处理单位的流),这种流对于以16位的 Unicode码表示的字符流处理很不方便。 从JDK1.1开始, java.io包中加入了专门用于字符流字符流处 理的类(以Reader和Writer为基础派生的一系列类)。 I/O流概述流概述-流的分类流的分类 按流处理过程分类: 介质流(原始流),主要指一些基本的流,它们主要从 具体的介质上,如网络、文件、内存缓冲区等读取或者写 入数据。 过滤流
9、,主要指FilterInputStream/ FilterOutputStream 和FilterReader/ FilterWriter的子类,操作特点是接在其它 流上进行某些特定的处理。 I/O流概述流概述-流的分类流的分类 InputStream ByteArrayInputStream FileInputStream FilterInputStream BufferedInputStream DataInputStream LineNumberInputStream PushbackInputStream ObjectInputStream PipedInputStream Seque
10、nceInputStream StringBufferInputStream System.in OutputStream ByteArrayOutputStream FileOutputStream FilterOutputStream BufferedOutputStream DataOutputStream PrintStream System.out ObjectOutputStream PipedOutputStream I/O流概述流概述-字节流体系字节流体系 字节流字节流 输入流 输出流 字节流字节流 基类:基类:InputStream Java中每一种字节流的基本功能依赖于基本
11、类InputStream 和OutputStream,它们是抽象类抽象类,不能直接使用。 属于InputStream类的方法有: read():从流中读入数据 skip():跳过流中若干字节数 available():返回流中可用字节数 mark():在流中标记一个位置 reset():返回标记过的位置 markSupport():是否支持标记和复位操作 close():关闭流 在InputStream类中,方法read()提供了三种从流中 读数据的方法: int read():从输入流中读一个字节,形成一个 0255之间的整数返回(是一个抽象方法)。 int read(byte b):读多个
12、字节到数组中,填满 整个数组。 int read(byte b, int off, int len):从输入流中读 取长度为len的数据,写入数组b中从索引off开始 的位置,并返回读取得字节数。 对于这三个方法,若返回对于这三个方法,若返回1,表明流结束,否,表明流结束,否 则,返回实际读取的字节数。则,返回实际读取的字节数。 字节流字节流 基类:基类:InputStream 属于OutputStream类的方法有: write(int b):将一个字节输出到流中(只输出低位字 节,为抽象方法为抽象方法) write(byte b):将字节数组中的数据输出到流中 write(byte b,
13、int off, int len):将数组b中从off指定的 位置开始,长度为len的数据输出到流中 flush():刷空输出流,并将缓冲区中的数据强制送出 close():关闭流 Writer的方法: write(String s), write(String s, int off, int len) 字节流字节流 基类:基类:OutputStream 把输入流中的所有内容复制到输出流中 public void copy(InputStream in, OutputStream out) throws IOException byte buf = new byte4096; int len
14、= in.read(buf); while (len != -1) out.write(buf, 0, len); len = in.read(buf); 字节流字节流 基类:例子基类:例子 字节流字节流 文件流文件流 在I/O处理中,最常见的就是对文件的操作。java.io包中所 提供的文件操作类包括: FileInputStream: FileOutputStream: File: FileDescriptor: FilenameFilter:接口,主要用于实现文件名查找模式的匹配。 RandomAccessFile:提供对本地文件系统对本地文件系统中文件的随机 访问支持。 描述本地文件系
15、统本地文件系统中的文件或目录 用于读写本地文件系统写本地文件系统中的文件 字节流字节流 文件流:文件流:FileInputStream、 FileOutputStream FileInputStream类用来打开一个输入文件,若要打开的 文件不存在,则会产生例外FileNotFoundException,这 是一个非运行时例外,必须捕获或声明抛出; FileOutputStream类用来打开一个输出文件,若要打开 的文件不存在,则会创建一个新的文件,否则原文件的 内容会被新写入的内容所覆盖。 在进行文件的读/写操作时,会产生非运行时例外 IOException,必须捕获或声明抛弃(其它的输入/
16、输出流 处理时也同样需要进行输入/输出例外处理)。 字节流字节流 文件流:文件流:FileInputStream/ FileOutputStream 文件流的构造方法: FileInputStream(File f) 打开一个以f描述的文件作为输入。 FileInputStream(String name) 打开一个文件路径名为name的文件作为输入。 FileOutputStream(File f) 创建一个以f描述的文件作为输出,文件如果已经存在,则其内容 被清空。 FileOutputStream(String name) 创建一个文件路径名为name的文件作为输出,文件如果已经存在,
17、则其内容被清空。 FileOutputStream(String name, boolean append) 创建一个文件路径名为name的文件作为输出,文件如果已经存在, 则在该输出上输出的内容被接到原有内容之后。 File f1 = new File(“file1.txt”); File f2 = new File(“file2.txt”); FileInputStream in=new FileInputStream(f1); FileOutputStream out=new FileOutputStream(f2); FileOutputStream out=new FileOutpu
18、tStream(“file3.txt”); 输入流的参数是用于指定输入的文件名,输出流的参数则 是用于指定输出的文件名。 输出文件输出文件 输入文件输入文件 read write 字节流字节流 文件流:文件流:FileInputStream/ FileOutputStream 字节流字节流 文件流:例子文件流:例子1 import java.io.*; class Filestream public static void main(String args) try File inFile=new File(file1.txt); File outFile=new File(file2.txt
19、); FileInputStream fis=new FileInputStream(inFile); FileOutputStream fos=new FileOutputStream(outFile); int c; while(c=fis.read()!=-1) fos.write(c); fis.close(); fos.close(); catch(FileNotFoundException e) System.out.println(FileStreamsTest: +e); catch(IOException e) System.err.println(FileStreamsTe
20、st: +e); 将 一 个 文 件 复 制 到 另 一 个 文 件 中 ( 覆 盖 ) 将 一 个 文 件 复 制 到 另 一 个 文 件 中 ( 覆 盖 ) 把一个文件的内容加到另一个文件后把一个文件的内容加到另一个文件后 public void cat(String fsrc, String fdest) try InputStream in = new FileInputStream(fsrc); OutputStream out = new FileOutputStream(fdest, true); copy(in, out); out.close(); in.close(); c
21、atch (IOException ex) System.err.println(ex); 字节流字节流 文件流:例子文件流:例子2 字节流字节流 过滤流过滤流 java.io中提供类FilterInputStream和FilterOutputStream 分别对其他输入/输出流进行特殊处理,它们在读/写数据的 同时可以对数据进行特殊处理。另外还提供了同步机制,使 得某一时刻只有一个线程可以访问一个输入/输出流。 类FilterInputStream和FilterOutputStream分别重写了父 类InputStream和OutputStream的所有方法,同时,它们的 子类也应该重写它们
22、的方法以满足特定的需要。 要使用过滤流,首先必须把它连接到某个输入要使用过滤流,首先必须把它连接到某个输入/输出流输出流 上上,通常在构造方法的参数中指定所要连接的流: protected FilterInputStream(InputStream in); protected FilterOutputStream(OutputStream out); 字节流字节流 过滤流过滤流 过滤流 其他流 字节流字节流 过滤流:缓冲流过滤流:缓冲流 类BufferedInputStream和BufferedOutputStream实现了带 缓冲的过滤流,它提供了缓冲机制,把任意的I/O流“捆绑” 到缓冲
23、流上,可以提高该I/O流的读取效率。 在初始化时,除了要指定所连接的I/O流之外,还可以 指定缓冲区的大小。缺省时是用32字节大小的缓冲区;最 优的缓冲区大小常依赖于主机操作系统、可使用的内存空 间以及机器的配置等;一般缓冲区的大小为内存页或磁盘 块等的整数倍,如8912字节或更小。 BufferedInputStream(InputStream in, int size) BufferedOutputStream(OutputStream out, int size) 2、字节流、字节流 过滤流:缓冲流过滤流:缓冲流 输出流 缓冲区 write() 输入流 缓冲区 read() 将缓冲流与文
展开阅读全文