Java高级编程(输入输出处理)课件

上传人:我*** 文档编号:139681513 上传时间:2020-07-23 格式:PPT 页数:39 大小:167KB
返回 下载 相关 举报
Java高级编程(输入输出处理)课件_第1页
第1页 / 共39页
Java高级编程(输入输出处理)课件_第2页
第2页 / 共39页
Java高级编程(输入输出处理)课件_第3页
第3页 / 共39页
Java高级编程(输入输出处理)课件_第4页
第4页 / 共39页
Java高级编程(输入输出处理)课件_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《Java高级编程(输入输出处理)课件》由会员分享,可在线阅读,更多相关《Java高级编程(输入输出处理)课件(39页珍藏版)》请在金锄头文库上搜索。

1、第8章流式输入输出和文件处理,学习目标,流的定义 流的分类和使用 掌握java中提供的输入输出的类体系;,学习目标,流的定义 流的分类和使用 掌握java中提供的输入输出的类体系;,流的定义,程序和设备间嫁接起来的一根用于传输数据的管道 ,这根管道上有很多按钮,不同的按钮实现不同的功能。 这根带按钮的用于数据传输的管道就是流 流就是管道。,流的定义,流和类的关系,如果一个类是作用于程序和设备之间的数据,则这个类有一个新的名字叫做流。 流一定是类,但类不一定是流。,输入输出(I/O)概述,流一般分为输入流和输出流两类, 输入流:数据提供者,可从中读取数据出来 输出流:数据接收者,可往其中写数据,

2、流的分类,流的分类标准,在Java开发环境中,主要是由包java.io中提供的一系列的类和接口来实现输入/输出处理。 J2SDK所提供的所有流类型是位于java.io内都继承自以下四种抽象类。,流的分类字节流,InputStream概述,InputStream是字节输入流类的抽象超类,描述了所有字节输入流的共同行为方法。 abstract int read() throws IOException 读取一个字节并以整数形式返回,如果读取到输入流的末尾则返回-1. int read(byteb) throws IOException 从输入流中读若干个字节到数组中。并将其存储到缓冲区数组中。以整

3、数形式返回实际独到的字节数。 FileInputStream fr=new FileInputStream(D:a.txt); len=fr.read(buf);,输入字节流InputStream,int read(byte b , int off , int len ) 从输入流中读len个字节到数组中。b是要存入数组的名字,off是第一个要读出的数据要存入的位置。len表示最多能读取的字节数。 将从输入流所关联到的设备中读取的第一个字节存储在元素boff中,下一个字节存储在boff+1中,以此类推,读取的字节数最多等于len.,这些子类的构造函数都可以用某种方式指定其数据源。 加强输入流,

4、对InputStream类进行功能扩充,ByteArrayInputStream( byte数组 ) FileInputStream(文件路径名 或 File对象) ObjectInputStream (Inputstream in) PipedInputStream (PipedOutputStream pipe) SequenceInputStream 表示其他输入串的逻辑连接 FilterInputStream(其他输入流)定义了子类对流的进一步处理功能。 BufferedInputStream (InputStreamin) DataInputStream(InputStreamin)

5、 各种数据读入,InputStream的子类,OutputStream概述,OutputStream是字节输出流类的抽象超类,描述了所有字节输出流的共同行为方法。 abstract void write(int b):将指定的字节写入输出流中。 void write (byteb) :将指定的一组字节b写入到输出流中。 void flush() :立即传输。 void close( ):关闭输出流并释放与该流相关的系统资源。,OutputStream的子类,FileOutputStream(File类对象或文件名), ByteArrayOutputStream() 数据被写到无名字节数组,该字

6、节数组内容可利用toByteArray() 和 toString()分别取到指定字节数组和字符串中。 PipedOutputStream (PipedInputStream pipe) ObjectOutputStream FilterOutputStream DataOutputStream(OutputStreamout) 包含输出各种数据类型数据的方法,如writeFloat() PrintStream(OutputStream out) 包含输出各种数据类型数据的方法,如print(),println。 但没有对应输入流,流的分类字符流,输入字符流类 Reader,抽象类,是所有输入字

7、符流类的父类 面向Unicode字符操作,Java使用Unicode码表示字符和字符串。 方法: boolean ready() 判断输入字符流是否可读 int read() 读取一个字符 int read(char cbuf) 读取一串字符(到字符数组) long skip(longn) 跳过n个字符 mark(intreadAheadLimit) 在当前位置做一标记 close() 关闭字符流,Reader类子类,CharArrayReader(char buf) PipedReader(PipedWriter) StringReader(Strings) BufferedReader(R

8、eader in) 提供有效读的方法,如:readLine,输出字符流类 Writer类,是所有表示输出字符流类的父类(抽象类)。 功能:接受要输出的字符并将它送往目的地。 方法: write(String str) write(char cbuf) flush() close(),Writer类的子类,CharArrayWriter() toCharArray() and toString(). StringWriter () 方法 toString PipedWriter(PipedReader) BufferedWriter(Write out) 提高I/O效率 方法:write() 写

9、字符或字符串 PrintWriter(OutputStream类或Writer类对象) 方法:print println 实现各种类型数据的输出,字节流和字符流的应用场合,见例题TestFileReader.java和TestFileInputStream.java程序。,两种流类,node stream 对指定的地方(磁盘文件、内存 等)读/写 filter stream 一个filter 流使用node流作为输入或输出。,目 的 地,数 据 源,标准输入输出流,Java的标准输入/输出,Java在java.lang.System类中声明了3个常量in(InputStream类)、out和e

10、rr(PrintStream类)。 System.in.read():该方法可以从键盘接收数据。 System.out.print()/System.out.println():向显示器输出数据。,标准输入输出流,语言包java.lang中的System类管理标准输入/输出流和错误流。 System.in,是InputStream类的对象,当程序中需要从键盘读入数据时,可调用System.in的read()方法。该方法会引发受检查的IOException。 System.out,是PrintStream类的对象,其中定义了向屏幕输送不同类型数据的方法print()和println()。 Sys

11、tem.err,也是从PrintStream中继承而来,把错误信息送到缺省的显示设备(通常是显示器)。,File类,标准文件类: File,File类的对象是文件系统中的一个目录或文件的抽象表示。 File类对象描述文件路径、名字、长度、可否读写等属性, 利用File对象,可用来命名文件、查询文件属性、对目录进行操作,但不读写文件。 上述操作都是以独立于系统的方式进行。 通过File类对象可以对操作系统的文件进行管理,体现Java的跨平台性。,File类构造函数,File(String path) 封装文件例(使用相对路径,移植性较好) File f1 = new File(“mydirmyf

12、ile.txt”); 封装目录例(使用绝对路径) File f2 = new File(“d:mydirdir1”); File(String parent, String child ) File f3 = new File(“d:d1” , “a.java”) File(File dir, String name) File f4 = new File(f2 , ”myfile.txt”);,win unix /,File类方法获取文件属性,判断目标是否存在: public boolean exists() 判断是文件还是目录 public boolean isFile() public

13、boolean isDirectory() 获取文件名称或整个路径 public String getName() 仅返回文件名 public String getPath() 返回整个路径字符串 获取文件长度 public long length() 获取文件读写属性 public boolean canRead() public boolean canWrite() 列出目录中的文件 public String list() /返回一个字符串数组 public File listFiles() /返回File类的对象数组,File类方法文件/目录操作,重命名 public boolean

14、renameTo(File new) 删除文件或目录 public boolean delete() 创建目录 public boolean mkdir() 创建目录及父目录(必要时) public boolean mkdirs(),File类使用示例,/*执行该例前,需在当前目录下建立一个shubdir子目录,并创建几个文件,其中包括一个名为a.java的文件,用于测试*/ import java.io.*; public class Test public static void main(String args) try File dir1 = new File(subdir); if

15、( dir1.exists() ,IO-1,File dir2=new File(subdird1); if(!dir2.exists() dir2.mkdir(); /建目录 System.out.println( -创建目录后再次列目录-); files = dir1.list() ; for( int i=0; i files.length; i+) System.out.println( filesi); dir2.delete() ; /删除创建的目录 File f1 = new File(subdira.java); System.out.println(-列出a.java文件的有

16、关信息-); System.out.println(f1.getName() + + f1.getPath() + + f1.length(); ,else System.out.println(subdir不存在或不是目录); / try 块 catch(Exception e) System.out.println(e.toString(); / end of main() ,文件类:RandomAccessFile,随机读写文件 视文件如同一个字节类型数组,数组下标即文件指针。读写操作都会移动指针。 构造函数 RandomAccessFile(File file, String mode) RandomAccessFile(String name, String mode) mode(文件操作模式): r:只读 rw:读写;如果文件不存在

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

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

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