清华大学javal ppt课件

上传人:bin****86 文档编号:55016035 上传时间:2018-09-23 格式:PPT 页数:32 大小:116KB
返回 下载 相关 举报
清华大学javal ppt课件_第1页
第1页 / 共32页
清华大学javal ppt课件_第2页
第2页 / 共32页
清华大学javal ppt课件_第3页
第3页 / 共32页
清华大学javal ppt课件_第4页
第4页 / 共32页
清华大学javal ppt课件_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《清华大学javal ppt课件》由会员分享,可在线阅读,更多相关《清华大学javal ppt课件(32页珍藏版)》请在金锄头文库上搜索。

1、输入输出,I/O软件层,设备驱动程序,设备驱动程序,设备驱动程序,设备驱动程序,设备驱动程序,OS,独 立 于 设 备 的 I/O 层,java.io 提供 I/O层 (类层),应用 程序,应用 程序,应用 程序,java.io的核心,文件(File类) 各种文件系统提供的基本服务一样,但实现细节互不兼容。 解决java程序与文件系统的沟通。 流 线性的顺序的输入输出数据流,读输入流,写输出流,I/O 流类,标准文件类: File,File类的对象是文件系统中的一个目录或文件的抽象表示。 File类对象描述文件路径、名字、长度、可否读写等属性,可用来命名文件、查询文件属性、对目录进行操作,但不

2、读写文件。 上述操作都是以独立于系统的方式进行。 通过File类对象可以对操作系统的文件进行管理,体现了跨平台不同文件的统一管理,File类构造函数,File(String path) 封装文件例(使用相对路径,移植性较好) File f1 = new File(“mydirmyfile.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)

3、 File f4 = new File(f2 , ”myfile.txt”);,win unix /,File类方法获取文件属性,判断目标是否存在 public boolean exists() 判断是文件还是目录 public boolean isFile(); public boolean isDirectory(); 获取文件名称或整个路径 public String getName() 仅返回文件名 public String getPath() 返回整个路径字符串 获取文件长度 public long length() 获取文件读写属性 public boolean canRead(

4、) public boolean canWrite() 列出目录中的文件 public String list() public File listFiles(),File类方法文件/目录操作,重命名 public boolean renameTo(File new) 删除文件或目录 public boolean delete(); 创建目录 public boolean mkdir() 创建目录及父目录(如果需要的话)public boolean mkdirs() 创建临时文件 public static File createTempFile(文件名,后缀) throws IOExcept

5、ion deleteOnExit(),1、2,文件I/O类:RandomAccessFile,视文件如同一个字节类型数组,数组下标即文件指针。读写操作都会移动指针。 构造函数 RandomAccessFile(File file, String mode) RandomAccessFile(String name, String mode),文件I/O类:RandomAccessFile,指针操作 long getFilePointer() 返回相对于文件头的位移量 单位:字节 该位置即下一个读写操作的位置。 void seek(long pos) 移动指针 (位移单位:字节) int ski

6、pBytes(int n) 移动指针 关闭文件close() 取文件长度length(),文件I/O类:RandomAccessFile,写文件 writeInt(int v) 写整型数 4个字节,高字节在前writeBoolean(boolean v) 一个字节,0或1 writeUTF(String str) 写一字符串,前两个字节标明字符串字节长度,文件I/O类:RandomAccessFile,读文件 byte readByte() 读一字节 char readChar() 读一字符(Unicode码2个字节) double readDouble() 读双精度数( 8个字节) Stri

7、ng readUTF() 读一个字符串。 readLine() 读一行文本(对每一个字节,配上一个置0高字节,构成一个双字节字符。不支持Unicode码,3 方法测试,4 学生信息,RandomAccessFile,构造函数的例外: IllegalArgumentException (not “r“ or “rw“) FileNotFoundException SecurityException 文件操作例外: EOFException (IOException) 读到文件尾 IOException 虽没有到文件尾,但读不到字符 IOException 文件已关闭,InputStream输入流

8、,管理字节(适于读取面向字节的数据) 是所有表示输入字节流类的父类(抽象类) 三个基本方法: abstract int read() 从输入流中读下一个字节。 int read(byte b) 从输入流中读若干个字节到数组中。 int read(byte b , int off , int len ) 从输入流中读len个字节到数组中。off是写入数组的位置(位移)。,InputStream输入流,skip(long n) 跳过n个字节。 boolean markSupported() 流是否支持mark功能 mark(int readlimit) 在当前位置做标记. reset() 回到最近

9、一次做的标记处。 close() 关闭输入流,释放与此输入流相连的系统资源。,ByteArrayInputStream( byte数组 ) FileInputStream(文件路径名 或 File对象) ObjectInputStream (Inputstream in) PipedInputStream (PipedOutputStream pipe) SequenceInputStream 表示其他输入串的逻辑连接 FilterInputStream(其他输入流)定义了子类对流的进一步处理功能。 BufferedInputStream (InputStream in) DataInputS

10、tream(InputStream in) 各种数据读入,InputStream输入流的子类,这些子类的构造函数都可以用某种方式指定其数据源。 加强输入流,对InputStream类进行功能扩充,OutputStream输出流,抽象类:是所有表示输出字节流类的父类。 功能:接受要输出的字节并将它送往目的地。 方法: write(int b) 往输出流写一个字节 write(byte b) 将字节数组数据写入输出流。 flush() 刷新输出流,并使缓冲区中的数据写出。 close() 关闭输出流,释放与之相连的系统资源。,OutputStream输出流子类,FileOutputStream(F

11、ile类对象或文件名), ByteArrayOutputStream()数据被写到无名字节数组,该字节数组内容可利用toByteArray() 和 toString()分别取到指定字节数组和字符串中。 PipedOutputStream (PipedInputStream pipe) ObjectOutputStream FilterOutputStream DataOutputStream(OutputStream out)包含输出各种数据类型数据的方法,如writeFloat()PrintStream(OutputStream out) 包含输出各种数据类型数据的方法,如print(),p

12、rintln。 但没有对应输入流,两种流类,node stream 对指定的地方(磁盘文件、内存 等)读/写 filter stream 一个filter 流使用node流作为输入或输出。,目 的 地,数 据 源,基本流类node流,FileInputStream FileOutputStream FileInputStream infile = new FileInputStream(“old.dat”) ;FileOutputStream outfile = new FileOutputStream(“new.dat”);,基本流类filter流,BufferedInputStream B

13、ufferedOutputStream增加I/O操作的有效性DataInputStream DataOutputStream可以读写Java基本类型的数据byte readByte() void writeByte(byte)long readLong() void writeLong(long)double readDouble() void writeDouble(double),使用I/O流读写文件,输出 DataOutputStream out = new DataOutputStream(new FileOutputStream(“test3“) 写文件:out.writeUTF(“

14、wang hong“);out.writeFloat(485.2F); 输入 DataInputStream in = new DataInputStream(new FileInputStream(“test3“); 读文件:in.readUTF() in.readFloat(),字符流 - Reader类,是所有读取字符流类的父类抽象类(面向Unicode字符操作) Java使用Unicode码表示字符和字符串。 方法: boolean ready() 输入字符流是否可读 int read() 读取一个字符 int read(char cbuf) 读取一串字符(到字符数组) long sk

15、ip(long n) 跳过n个字符 mark(int readAheadLimit) 在当前位置做一标记 reset() 将读取位置恢复到标记处 close() 关闭字符流,Reader类子类,CharArrayReader(char buf) PipedReader(PipedWriter) StringReader(String s) BufferedReader(Reader 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() 写字符或字符串 PrintWriter(OutputStream类或Writer类对象) 方法:print println 实现各种类型数据的输出,

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

当前位置:首页 > 医学/心理学 > 基础医学

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