![]() ![]() |
|
等级考试二级JAVA考点分析之输入输出及文件操作 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:42:48 文章录入:杜斌 责任编辑:杜斌 | |
|
|
考点:1 流的概念和Java语言中的I/O流 1.流的基本概念 流是指在计算机的输入与输出之间流动的数据序列:从数据源串行地流向数据目的地。 (1)输入流是指从外设流入计算机的数据流。 (2)输出流是指从计算机流向外设的数据流。 2.Java语言中的I/O流 Java的I/O功能主要是通过输入输出类库java.io包来实现的,java.io包中包括了可以处理字节流、字符流、文件流和对象流等的类,这些类主要可以分为如下几个: (1)接口:处理字节流的DataInput和DataOutput;处理对象流的ObjectInput和Obj ectOutput;筛选文件名的FileNameFilter;处理对象流的Serializable。 (2)抽象类:处理字节流的InputStream和OutputStream;处理过滤流的FilterOutputStream和FilterInputStream;处理字符流的Reader和Writer;处理压缩流的InflaterInputStream和DeflaterOutputStream。 (3)非字符输入/输出流,分别通过继承抽象类InputStream和OutputStream实现,输入流包括字节数组作为输入流的ByteArrayInputStream;处理磁盘文件的FileInputStream;实现线程通信的PipedInputStream;过滤器输入流FilterInputStream;输入流的连接SequenceInputStream,输出流则包括和输入流相对应的类。 (4)过滤字节输入/输出流,分别通过继承抽象类FilterlnputStream和FilterInputStream实现,输入流包括BufferedInputStream类,Checked InputStream类等输出流则包括和输入流相对应的类。 (5)压缩文件输入/输出流,分别继承自InflaterInputStream和DeflaterOutputStream类。 (6)字符输入/输出流,分别继承自抽象类Reader和Writer。 (7)同时兼有输入和输出功能的RandomAccessFile类,实现DataInput和DataOutput接口,直接继承自Object类,可以在文件的任意位置读写记录。 7.2文件和文件I/O 考点:2 文件和文件I/O 1.文件 File类是Java.io包中专门处理文件并获取文件有关信息的一个类。Java语言通过File类建立与磁盘文件的联系。对File类的理解,需要注意如下几点: (1)File类不是InputStream类或者OutputStream类的子类,它不负责数据的输入输出,而是专门用来管理文件和目录。 (2)在Java语言中,目录也作为File类的对象进行处理。 (3)每个File类的对象都表示一个文件或目录,调用其方一法就可以获得该文件或目录的属性,完成对文件或目录的常用管理操作。 (4)流类关心的是文件的内容,而File类关心的是文件在磁盘上的存储。 2.File类的方法 (1)创建文件,与一般的类的初始化格式一样: File name=new File(<pathname>); File name=new File(<path>,<filename>); 说明:构造函数的参数可以是路径文件名,也可以是路径和文件名。 (2)文件名操作,有getName(),getParent(),getPath(),list(),getCanonicalPath()throws IOException等。 (3)测试文件属性操作,有isDirectory(),isAbsolute(),exists(),canRead(),canWrite()等。 (4)文件信息操作,有delete(),deleteOnExit(),length(),lastModified()等。 (5)目录操作,有mkdir(),mkdirs(),list(),listRoots()等。 (6)其他,有hashCode(),setLastModified(long time),setReadOnly()等。 3.随机文件流 RandomAccessFile类用来实现对文件的随机读写操作。它继承自Object类,实现了DataInput和DataOutput接口。构造方法如下: RandomAccessFile raf=new RandomAccessFile(<文件名>,<访问模式>): 说明如下: (l)文件名参数,可以是File类对象或文件名字符串的形式提供。 (2)访问模式,有2种取值:“r”只读,或者“rw”读写。 4.压缩文件流 压缩文件流被定义在java.util.zip包和Java.util.jar包中,包括压缩文件输入流ZipInputStream和压缩文件输出流ZipOutputStream。编写程序时一般使用压缩文件流的步骤如下: (1)将一个Zip文件作为FileInputStream构造方法的参数。 (2)将上述FileInputStream对象作为ZipInputStream构造方法的参数。 (3)再将上一步中的ZipInputStream对象作为InputStreamReader构造方法的参数。 (4)最后InputStrearn Reader对象作为BufferedReader构造方法的参数,然后就可以使用readLine()等方法进行操作。 7.3字节I/O流 考点:3 字节I/O流 1.字节输入流 字节输入流继承自InputStream类,并且使用DataInputStream实现DataInput接口。编程时一般的步骤如下: (1)字节数据的来源(二进制文件)作为FileInputStream的构造方法的参数,实例化一个 FileInputStream对象。 (2)FileInputStream对象作为DataInputStream的构造方法的参数。 (3)然后就可以使用InputStream类中的方法,进行字节输入流的操作。 InputStream类的方法有:read(),available(),skip(),close()等。
2.字节输出流 字节输出流继承自OutputStream类,并且通过DataOutputStream实现DataOutput接口。编程时的一般步骤和上述字节输入流相似,只是将相应的输入流类换成输出流类即可。 OutputStream类的方法有:writeDouble(),writeInt(),writeChar(),write(),flush()等。 3.读写内存 在Java.io包中,能够直接访问内存的类有3个。 (1)ByteArrayInputStream,用于从字节数组中读取数据,主要方法有:read(),skip(),reset(),close()等。 (2)ByteArrayOutputStream,用于向字节数组写入数据,主要方法有:write(),writeTo(),reset(),close()以及toByteArray(),size(),toString()。 (3)StringBufferlnputStream类。 这几个类都继承自InputStream和OutputStream类。 7.4字符类I/O流 考点:4 字符类I/O流 字符类I/O流是用于处理16位Unicode码的流,这些类继承自Reader和Writer类。编程时使用字符类I/O流操作带有分隔符的Unicode码文件的一般步骤如下: (l)将Unicode文件作为参数分别构造FileReader和FileWriter对象。 (2)以FileReader对象作为参数构造BufferedReader对象。 (3)以FileWriter对象作为参数构造PrintWriter对象。 (4)调用BufferedReader对象的readLine()方法读取Unicode码数据或者按照分隔符读取某个记录的每个字段。 (5)调用PrintWriter对象的println()方法写入Unicode码记录或数据。 1.字符类输入流 字符类输入流都继承自Reader类,实现从数据源读取Unicode码序列的操作。 (1) FileReader类继承自InputStreamReader类,用于读取Unicode码。 (2 ) BufferedReader类继承自Reader类,它使用缓冲技术,提高了字符传输的效率。 ( 3 ) InputStreani Reader类和BufferedReader类都继承自Reader类。 (4)Reader类包含的方法有:read),skip(),markSupported),mark(),reset()等。 (5)InputStreamReader类包含的方法有:getEncoding),InputStreamReader(),close()等。 (6)BufferedReader类包含的方法有:readLine(),BufferedReader()等。 2.字符类输出流 字符类输出流继承自Writer类,实现向数据目的地输出Unicode码序列的操作。 (1)PrintWriter和OutputStreamWriter是Writer的子类。 (2)PrintWriter类用于输出字符,其方法println()实现向输出流写入字符数据。 (3)OutputStreamWriter类的子类FileWriter,实现向文本文件写入字符数据。 (4)Writer类包含的方法:write(),flush()等。 (5)OutputStreamWriter类包含的方法:OutputStreamWriter(),close()等。 (6)BufferedWriter类包含的方法:newLine(),BufferedWriter()等。 7.5过滤流和管道流 考点:5 过滤流 在Java中,过滤流提供了对I/O的同步处理机制。java.io包中的FilterInputStream和FileOutputStrean抽象类实现了过滤流。 (l)使用过滤流之前,需要将该过滤流和一个I/ O流相连。 (2)BufferedInputStreamt和BufferedOutputStream类分别继承自 FilterInputStream和FileOutputStream类,使用缓冲技术,提高了效率。 (3)DataInputStream和DataOutputStream可以用于读写Java语言的基本数据类型,不用做转换。 考点:6 管道流 在Java中,不同的Java程序、线程或代码段相互之间的数据交换通过管道流实现。java.io包中的2个类:PipedInputStream和PipedOutputStream类实现了管道机制。 7.6 J2SE1. 4中的新I/O功能 考点:7 J2SE1.4中的新I/O功能 J2SE1.4提供了一些新的I/O功能,被封装在java.nio包中。其特点是:使用内存映射技术、文件锁定、字符及编码、非阻塞I/O等。 (1)内存映射,将磁盘文件映射到内存,提高读写速度。 (2)文件通道,为磁盘文件映射到内存提供通道。 (3)CRC32类,进行差错控制。 7.7 I/O流和正则表达式 考点:8 I/O流和正则表达式 Java中,使用正则表达式包(java.util.regex)和java.net. URL类结合,处理网络上的字符输入流的模式字符串的搜索。java.util.regex包中有两个类。 (1)Pattern(模式类),其方法compile ( String expression,int flags )首先将正则表达式字符串编译成模式对象,然后进行快速匹配。参数中,expression是一个正则表达式,flags是表达式字符的一些特征。该类的方法有:matcher()等。 (2) Matcher(匹配器类),用于比较输入字符串和模式串该类的方法有:matches(),find(),start(),end()等。 |
|
![]() ![]() |