电子教案·《Java程序设计实例教程》.ppt

上传人(卖家):三亚风情 文档编号:3176751 上传时间:2022-07-28 格式:PPT 页数:352 大小:6.25MB
下载 相关 举报
电子教案·《Java程序设计实例教程》.ppt_第1页
第1页 / 共352页
电子教案·《Java程序设计实例教程》.ppt_第2页
第2页 / 共352页
电子教案·《Java程序设计实例教程》.ppt_第3页
第3页 / 共352页
电子教案·《Java程序设计实例教程》.ppt_第4页
第4页 / 共352页
电子教案·《Java程序设计实例教程》.ppt_第5页
第5页 / 共352页
点击查看更多>>
资源描述

1、本章学习关于文件的编程,包括本章学习关于文件的编程,包括4 4部分内容,即:选择文件对部分内容,即:选择文件对话框、对文件的操作、文件的读写和运行可执行文件。学习本话框、对文件的操作、文件的读写和运行可执行文件。学习本章应掌握以下内容:章应掌握以下内容:掌握调用文件对话框并选择一个文件或文件夹的方法。掌握调用文件对话框并选择一个文件或文件夹的方法。掌握数据流、字符流、字节流的概念和顺序读写文件、随机掌握数据流、字符流、字节流的概念和顺序读写文件、随机 读写文件的概念。读写文件的概念。掌握使用流技术读写文本文件和二进制文件的方法。掌握使用流技术读写文本文件和二进制文件的方法。掌握文件的各种操作,

2、包括获取和设置文件的属性、创建文掌握文件的各种操作,包括获取和设置文件的属性、创建文 件夹、文件和文件夹的重命名、文件和文件夹的删除等等。件夹、文件和文件夹的重命名、文件和文件夹的删除等等。掌握在掌握在JavaJava程序中调用可执行文件的方法。程序中调用可执行文件的方法。本章学习目标本章学习目标 10.1 10.1 文件对话框类文件对话框类FileDialogFileDialog 文件对话框文件对话框FileDialogFileDialog类是对话框类是对话框DialogDialog的子类,专门用于的子类,专门用于从对话框中选择一个文件。文件对话框有打开文件对话框和保存从对话框中选择一个文件

3、。文件对话框有打开文件对话框和保存文件对话框两种,究竟使用哪一种,由构造函数的参数决定。文件对话框两种,究竟使用哪一种,由构造函数的参数决定。相对文件对话框相对文件对话框FileDialogFileDialog而言对话框而言对话框DialogDialog是万能的,但是万能的,但是用户要做更多的编程工作;而文件对话框功能单一,使用方便。是用户要做更多的编程工作;而文件对话框功能单一,使用方便。1 1创建文件对话框创建文件对话框 文件对话框的构造方法有三种形式,其中第三种更为常用,文件对话框的构造方法有三种形式,其中第三种更为常用,如表如表10-110-1所示。所示。10.1 10.1 文件对话框

4、类文件对话框类FileDialogFileDialog 表表10-1 10-1 文件对话框的构造方法文件对话框的构造方法构造方法解释public FileDialog(Frame parent)创建一个参数创建一个参数parent指定拥有者的文件对话框指定拥有者的文件对话框public FileDialog(Frame parent,String title)创建一个参数创建一个参数parent指定拥有者、参数指定拥有者、参数title指定指定标题的文件对话框标题的文件对话框public FileDialog(Frame parent,String title,int mode)创建一个参数创

5、建一个参数parent指定拥有者、参数指定拥有者、参数title指定指定标题、参数标题、参数mode指定对话框类型的文件对话框。指定对话框类型的文件对话框。Mode的可取值为的可取值为FileDialog.LOAD 对话框中有对话框中有“打开打开”按钮按钮FileDialog.SAVE 对话框中有对话框中有“保存保存”按钮按钮 2 2文件对话框的常用方法文件对话框的常用方法 文件对话框的方法主要用于对文件对话框的特性进行设置以及获取选文件对话框的方法主要用于对文件对话框的特性进行设置以及获取选择的结果,除了从择的结果,除了从DialogDialog类继承的方法之外,常用的方法见表类继承的方法之

6、外,常用的方法见表10-210-2所列。所列。10.1 10.1 文件对话框类文件对话框类FileDialogFileDialog 表表10-2 10-2 文件对话框的常用方法文件对话框的常用方法常用方法常用方法解释解释public String getDirectory()取得目录字符串取得目录字符串public void setDirectory(String dir)根据字符串设置目录根据字符串设置目录public String getFile()取得用户选择的文件名,如果用户单击取得用户选择的文件名,如果用户单击“取消取消”而没有选择文件,则返回为空而没有选择文件,则返回为空publi

7、c void setFile(String file)设置待用户选择的默认的文件名设置待用户选择的默认的文件名public void setFilenameFilter(FilenameFilter filter)设置文件名过滤器设置文件名过滤器 实例实例 使用对话框选择文件使用对话框选择文件 方法方法1 1:显式地创建窗口事件适配器类:显式地创建窗口事件适配器类 方法方法2 2:创建窗口事件适配器对象时嵌套创建适配器类:创建窗口事件适配器对象时嵌套创建适配器类 方法方法3 3:创建窗口事件适配器对象时嵌套创建适配器类:创建窗口事件适配器对象时嵌套创建适配器类10.2 10.2 文件类文件类F

8、ileFile 要对文件进行读写等操作,需要使用文件类要对文件进行读写等操作,需要使用文件类FileFile,本节介绍文件类的,本节介绍文件类的基本内容。表基本内容。表10-310-3给出了文件类的构造方法。需要说明的是,文件类实例给出了文件类的构造方法。需要说明的是,文件类实例化以后得到一个文件对象,但是文件对象并不是一个具体的文件。化以后得到一个文件对象,但是文件对象并不是一个具体的文件。表表10-3 10-3 文件类的构造方法文件类的构造方法构造方法构造方法解释解释public File(String pathname)根据文件名创建文件对象,文件名包根据文件名创建文件对象,文件名包括路

9、径括路径public File(String parent,String child)根据目录名和文件名创建文件对象,根据目录名和文件名创建文件对象,文件名不包括路径文件名不包括路径public File(File parent,String child)根据文件对象和文件名创建文件对象,根据文件对象和文件名创建文件对象,文件名不包括路径文件名不包括路径 在这在这3 3个构造方法中,方法个构造方法中,方法1 1最为简单,但是如果要在同一目录中创建最为简单,但是如果要在同一目录中创建多个文件,由于方法多个文件,由于方法2 2和方法和方法3 3的文件名和目录是分开的,使用起来更加方的文件名和目录是

10、分开的,使用起来更加方便。便。10.2 10.2 文件类文件类FileFile 考虑到不同的操作系统的路径分隔符是不同的,而考虑到不同的操作系统的路径分隔符是不同的,而JavaJava语言是跨平台的语言是跨平台的编程语言,所以编程语言,所以JavaJava在文件类中定义了一些静态的类变量用于表示这些分在文件类中定义了一些静态的类变量用于表示这些分隔符,当程序运行在不同平台上时,这些分隔符自动变为该平台的分隔符,隔符,当程序运行在不同平台上时,这些分隔符自动变为该平台的分隔符,见表见表10-410-4。表表10-4 10-4 文件类的静态类变量文件类的静态类变量类变量类变量解释解释public

11、static final String pathSeparator用字符串表示的路径分隔符,用于分隔多个路径,对用字符串表示的路径分隔符,用于分隔多个路径,对于于Windows系统是字符串系统是字符串;public static final char pathSeparatorChar用字符表示的路径分隔符,用于分隔多个路径,对于用字符表示的路径分隔符,用于分隔多个路径,对于Windows系统是字符系统是字符;public static final String separator用字符串表示的路径字符串分隔符,对于用字符串表示的路径字符串分隔符,对于Windows系系统是字符串统是字符串pu

12、blic static final char separatorChar用字符表示的路径字符串分隔符,对于用字符表示的路径字符串分隔符,对于Windows系统系统是字符是字符10.2 10.2 文件类文件类FileFile FileFile类提供了许多文件操作的方法,表类提供了许多文件操作的方法,表10-510-5给出了其中最常用给出了其中最常用的方法,在的方法,在10.610.6节将给出一个调用这些方法的例子。节将给出一个调用这些方法的例子。表表10-5 File10-5 File类的常用方法类的常用方法常用方法常用方法解释解释public boolean createNewFile()创建

13、文件对象对应的文件创建文件对象对应的文件public boolean delete()删除文件对象对应的文件或空的目录删除文件对象对应的文件或空的目录public boolean exists()判断文件对象对应的文件或目录是否存在判断文件对象对应的文件或目录是否存在public boolean mkdir()创建文件对象对应的目录创建文件对象对应的目录public boolean renameTo(File dest)更改文件对象对应的文件名,参数更改文件对象对应的文件名,参数dest指定新指定新的文件对象的文件对象public boolean setReadOnly()设置文件对象对应的属

14、性为只读设置文件对象对应的属性为只读public File getParentFile()获取父文件对象获取父文件对象10.2 10.2 文件类文件类FileFile常用方法常用方法解释解释public File listFiles()获取目录中所有文件对象存放在文件数组获取目录中所有文件对象存放在文件数组public long lastModified()获取最后一次修改时间,如果文件不存在或发生获取最后一次修改时间,如果文件不存在或发生其他错误,返回其他错误,返回0Lpublic long length()获取文件对象对应文件的长度(字节数)获取文件对象对应文件的长度(字节数)public

15、 String getAbsolutePath()获取文件对象对应的绝对路径获取文件对象对应的绝对路径public String getName()获取文件对象对应的文件名获取文件对象对应的文件名public String getParent()获取文件对象的父目录字符串获取文件对象的父目录字符串public String getPath()获取文件对象的目录字符串获取文件对象的目录字符串public String toString()获取文件对象字符串获取文件对象字符串public String list()获取目录中所有文件名存放在字符串数组获取目录中所有文件名存放在字符串数组public

16、 boolean canRead()判断文件是否可读判断文件是否可读public boolean canWrite()判断文件是否可写判断文件是否可写public boolean isDirectory()判断是不是目录判断是不是目录10.3 10.3 流的概念流的概念10.3.1 10.3.1 数据流的概念数据流的概念 所有程序都离不开输入和输出,在所有程序都离不开输入和输出,在JavaJava语言中输入输出都是语言中输入输出都是通过数据流来实现的。数据流(通过数据流来实现的。数据流(streamstream)是一组有顺序的、有起)是一组有顺序的、有起点和终点的字节集合,是对输入输出的抽象。

17、包括从键盘接受数点和终点的字节集合,是对输入输出的抽象。包括从键盘接受数据、读写文件、打印输出等操作,都是数据流。据、读写文件、打印输出等操作,都是数据流。JavaJava对数据流操对数据流操作的类都在作的类都在java.iojava.io包中。包中。数据流分为输入流(数据流分为输入流(InputStreamInputStream)和输出流()和输出流(OutStreamOutStream)两种,输入流只能读不能写,用来输入数据,例如从键盘、文件两种,输入流只能读不能写,用来输入数据,例如从键盘、文件输入数据等。而输出流只能写不能读,用来输出数据,例如向显输入数据等。而输出流只能写不能读,用来

18、输出数据,例如向显示器、打印机、文件输出数据等。引入数据流概念的目的是使程示器、打印机、文件输出数据等。引入数据流概念的目的是使程序的输入输出操作与具体的设备无关,从而使程序员在程序设计序的输入输出操作与具体的设备无关,从而使程序员在程序设计时根本不用考虑那些输入输出设备是如何工作的时根本不用考虑那些输入输出设备是如何工作的。10.3 10.3 流的概念流的概念 对数据流的操作是以字节为单位进行的,虽然看起来是输入或对数据流的操作是以字节为单位进行的,虽然看起来是输入或输出一个字节,但是实际的物理过程却不是这样。为了提高数据传输出一个字节,但是实际的物理过程却不是这样。为了提高数据传输的效率,

19、通常使用缓冲区(输的效率,通常使用缓冲区(bufferbuffer)技术,缓冲区是专门用于数)技术,缓冲区是专门用于数据输入输出的一块内存。据输入输出的一块内存。当向输出设备输出(写)数据时,并不是直接把数据输出到输当向输出设备输出(写)数据时,并不是直接把数据输出到输出设备,而是写到缓冲去,只有两种情况才真正进行写的物理操作,出设备,而是写到缓冲去,只有两种情况才真正进行写的物理操作,一种情况是缓冲区已满,另一种情况则是程序发出了强制写的指令,一种情况是缓冲区已满,另一种情况则是程序发出了强制写的指令,例如关闭文件时。例如关闭文件时。同样道理,当程序从输入设备读取数据时,也总是在缓冲区中同样

20、道理,当程序从输入设备读取数据时,也总是在缓冲区中找有没有欲读取的数据,如果有,直接从缓冲区中获取数据,如果找有没有欲读取的数据,如果有,直接从缓冲区中获取数据,如果没有,再从输入设备物理地读取,并且每次物理读取都尽可能多地没有,再从输入设备物理地读取,并且每次物理读取都尽可能多地读取数据,通常是读满整个缓冲区,以备下一次读取所用。读取数据,通常是读满整个缓冲区,以备下一次读取所用。10.3 10.3 流的概念流的概念10.3.2 10.3.2 标准的输入输出标准的输入输出 标准输入输出的概念来自于标准输入输出的概念来自于DOSDOS,是在字符方式下程序与系,是在字符方式下程序与系统设备进行交

21、互的方式,包括标准输入、标准输出和标准错误输统设备进行交互的方式,包括标准输入、标准输出和标准错误输出。标准输入的对象是键盘,标准输出和标准错误输出的对象都出。标准输入的对象是键盘,标准输出和标准错误输出的对象都是显示器。是显示器。Java Java通过系统类通过系统类SystemSystem实现标准输入输出功能,实现标准输入输出功能,SystemSystem类位类位于于java.langjava.lang包中,使用包中,使用SystemSystem类是最终类(类是最终类(finalfinal)不需(也允)不需(也允许)创建其对象,可以直接使用,例如前面程序中经常使用的许)创建其对象,可以直接

22、使用,例如前面程序中经常使用的 System.out.println(String Message);System.out.println(String Message);就是这样的用法。就是这样的用法。System System类有类有3 3个成员列于表个成员列于表10-610-6中,注意这中,注意这3 3个成员对象的数个成员对象的数据类型分别是下面要介绍的字节输入流类据类型分别是下面要介绍的字节输入流类InputStreamInputStream和打印输和打印输出流类出流类PrintStreamPrintStream。10.3 10.3 流的概念流的概念 表表10-6 System10-6

23、 System类的成员类的成员 标准输入输出对象标准输入输出对象inin和和outout经常配合输入流类经常配合输入流类InputStreamInputStream和输出和输出流类流类PrintStreamPrintStream的方法使用,象下面的样子:的方法使用,象下面的样子:System.in.read();System.in.read();System.out.print(String Message);System.out.print(String Message);System.out.println(String Message);System.out.println(String

24、 Message);实例实例 标准输入输出标准输入输出成员成员解释解释public static final InputStream in标准输入对象标准输入对象public static final PrintStream out标准输出对象标准输出对象public static final PrintStream err标准错误输出对象标准错误输出对象10.3 10.3 流的概念流的概念10.3.3 java.io10.3.3 java.io包中的数据流类包中的数据流类 java.io java.io包支持二进制字节流(包支持二进制字节流(binary streambinary strea

25、m,简称字节流),简称字节流)和字符流(和字符流(character streamcharacter stream),字节流和字符流的区别是,字),字节流和字符流的区别是,字符流用于传输纯文本,而字节流可以传输各种数据。由于符流用于传输纯文本,而字节流可以传输各种数据。由于JavaJava使使用的是用的是1616位的位的UnicodeUnicode码,所以对于每一个字符要传输两个字节,码,所以对于每一个字符要传输两个字节,先传输高字节,再传输低字节。字节流除了也能传输纯文本以外,先传输高字节,再传输低字节。字节流除了也能传输纯文本以外,还可以传输程序的可执行代码、图片、声音、视频等等其他数据。

26、还可以传输程序的可执行代码、图片、声音、视频等等其他数据。java.io java.io包中有包中有2 2个用于字节流输入输出的类和个用于字节流输入输出的类和2 2个用于字符个用于字符流输入输出的类,见表流输入输出的类,见表10-710-7所列。所列。10.3 10.3 流的概念流的概念 表表10-7 java.io10-7 java.io包中字节流和字符流类包中字节流和字符流类数据流的种类数据流的种类 数据流类数据流类说明说明字节流字节流InputStream字节输入流类字节输入流类OutputStream字节输出流类字节输出流类字符流字符流Reader字符输入流类字符输入流类Writer字

27、符输出流类字符输出流类 这些都是抽象类,不能实例化。对于文件操作,实际使用时分这些都是抽象类,不能实例化。对于文件操作,实际使用时分别使用二者的子类别使用二者的子类FileInputStreamFileInputStream类、类、FileOutputStreamFileOutputStream类、类、FileReaderFileReader类和类和FileWriterFileWriter类。表类。表10-810-8和表和表10-910-9分别列出了这分别列出了这4 4个类个类的构造方法和常用方法。的构造方法和常用方法。10.3 10.3 流的概念流的概念表表10-8 10-8 字节流类和字符

28、流类的构造方法字节流类和字符流类的构造方法类类构造方法构造方法解释解释FileInputStream类类public FileInputStream(File file)用参数用参数file指定的文件对象创建指定的文件对象创建文件输入流对象文件输入流对象public FileInputStream(String name)用参数用参数name指定的文件名创建指定的文件名创建文件输入流对象文件输入流对象FileOutputStream类类public FileOutputStream(File file)用参数用参数file指定的文件对象创建指定的文件对象创建文件输出流对象文件输出流对象publ

29、ic FileOutputStream(String name)用参数用参数name指定的文件名创建指定的文件名创建文件输出流对象文件输出流对象public FileOutputStream(File file,boolean append)用参数用参数file指定的文件对象创建指定的文件对象创建文件输出流对象,参数文件输出流对象,参数append为为true时为追加方式,为时为追加方式,为false时为重写方式,默认值是时为重写方式,默认值是falsepublic FileOutputStream(String name,boolean append)用参数用参数name指定的文件名创建指定

30、的文件名创建文件输出流对象,参数文件输出流对象,参数append的意义同上的意义同上10.3 10.3 流的概念流的概念类类构造方法构造方法解释解释FileWriter类类public FileWriter(File file)用参数用参数file指定的文件创指定的文件创建写字符文件对象建写字符文件对象public FileWriter(File file,boolean append)用参数用参数file指定的文件创指定的文件创建写字符文件对象,如建写字符文件对象,如果参数果参数append为为true,采用添加方式,否则采采用添加方式,否则采用覆盖方式用覆盖方式public FileWri

31、ter(String fileName)用参数用参数fileName指定的文指定的文件名创建写字符文件对件名创建写字符文件对象象public FileWriter(String fileName,boolean append)用参数用参数fileName指定的文指定的文件名创建写字符文件对件名创建写字符文件对象,参数象,参数append的意义的意义同上同上10.3 10.3 流的概念流的概念 表表10-9 10-9 字节流类和字符流类的常用方法字节流类和字符流类的常用方法类类常用方法常用方法解释解释FileInputStream类类public int read()从输入流读取一个字节,并把指

32、针定位到下一字节,从输入流读取一个字节,并把指针定位到下一字节,如果到达文件尾返回如果到达文件尾返回-1public int read(byte b)从输入流读取从输入流读取b.length字节到字节数组字节到字节数组b,返回实际读,返回实际读的字节数,如果到达文件尾返回的字节数,如果到达文件尾返回-1;如果数组;如果数组b的长度的长度为为0返回返回0public int read(byte b,int off,int len)从输入流读取从输入流读取len字节到字节数组字节到字节数组b从从off开始的位置,开始的位置,返回值同上返回值同上public void close()关闭输入流关闭输

33、入流FileOutputStream类类public void write(int b)把整型参数把整型参数b的低的低8为写入输出流,忽略其高为写入输出流,忽略其高24位位public void write(byte b)把字节数组把字节数组b全部写入输出流全部写入输出流public void write(byte b,int off,int len)把字节数组把字节数组b从从off开始长度为开始长度为len的数据写入输出流的数据写入输出流public void close()关闭输出流关闭输出流FileReader类从类从Reader类继承的方法类继承的方法public int read(c

34、har cbuf)从文件读字符到字符数组从文件读字符到字符数组cbuf10.3 10.3 流的概念流的概念类类常用方法常用方法解释解释BufferedReader类中的方法类中的方法public String readLine()从文件读一行文本,行由回车符或换从文件读一行文本,行由回车符或换行符或回车符加换行符界定行符或回车符加换行符界定FileWriter类从类从Writer类继承类继承的方法的方法public void write(String str)写字符串写字符串str到文件到文件public void write(String str,int off,int len)写字符串写字

35、符串str到文件,参数到文件,参数off是相对于是相对于字符串的偏移量字符串的偏移量,参数参数len是字符数是字符数 以上以上3 3个个readread方法会发生一些异常,具体来说:方法会发生一些异常,具体来说:当文件不存在时会抛出当文件不存在时会抛出IOExceptionIOException类的类的FileNotFoundExceptionFileNotFoundException异常;异常;当目标数组当目标数组b b为空时会抛出为空时会抛出NullPointerExceptionNullPointerException异常;异常;当当offoff或或lenlen为负数或者为负数或者off

36、+lenoff+len大于数组的长度,会抛出大于数组的长度,会抛出IndexOutOfBoundsExceptionIndexOutOfBoundsException异常。异常。3 3个个writewrite方法可能发生的异常跟方法可能发生的异常跟FileInputStreamFileInputStream类类似。此外用这类类似。此外用这3 3个方个方法写数据时,如果目标文件不存在,会自动创建目标文件。写的方式视创建法写数据时,如果目标文件不存在,会自动创建目标文件。写的方式视创建输出流对象时输出流对象时appendappend参数为参数为truetrue还是还是falsefalse而取追加方

37、式或者覆盖方式。而取追加方式或者覆盖方式。10.4 10.4 顺序读写文件顺序读写文件 本书把绝大多数书籍中本书把绝大多数书籍中“读写顺序文件读写顺序文件”、“读写随机文件读写随机文件”的说的说法改称法改称“顺序读写文件顺序读写文件”和和“随机读写文件随机读写文件”,这是因为文件本身并没,这是因为文件本身并没有有“顺序文件顺序文件”和和“随机文件随机文件”之分,只是在读写文件时有之分,只是在读写文件时有“顺序读写顺序读写”和和“随机读写随机读写”两种读写方式。两种读写方式。顺序读写文件使用顺序读写文件使用10.310.3节介绍的各个数据流类,以下几节是几个顺节介绍的各个数据流类,以下几节是几个

38、顺序读写文件的实例。序读写文件的实例。10.4.1 10.4.1 用文件输入流顺序读文件用文件输入流顺序读文件 实例实例 打开并读取文件打开并读取文件10.4.2 10.4.2 用字节流顺序写文件用字节流顺序写文件 实例实例 用字节流写文件用字节流写文件10.4.3 10.4.3 用字符流顺序写文件用字符流顺序写文件 实例实例 用字符流写文件用字符流写文件10.4.4 10.4.4 用文件输入输出流读写文件用文件输入输出流读写文件 实例实例 复制文件复制文件 实例实例 复制文件之二复制文件之二10.5 10.5 使用使用LineNumberReaderLineNumberReader类类 为源

39、程序加行号是读写文件的典型例子,其结果是把一个源程为源程序加行号是读写文件的典型例子,其结果是把一个源程序文件(或任何纯文本文件)加上行号后写到另一个文件中。序文件(或任何纯文本文件)加上行号后写到另一个文件中。要实现这一功能,最容易想到的思路是逐行读取源文件,每读要实现这一功能,最容易想到的思路是逐行读取源文件,每读取源文件的一行后,利用字符串的处理方法在原内容的前方加上行取源文件的一行后,利用字符串的处理方法在原内容的前方加上行号,然后写入到目标文件中。除此方法之外,利用号,然后写入到目标文件中。除此方法之外,利用JavaJava类库提供的类库提供的LineNumberReaderLine

40、NumberReader类能更方便的完成此项任务。在介绍具体的程序类能更方便的完成此项任务。在介绍具体的程序之前先对之前先对readerreader类和类和LineNumberReaderLineNumberReader类做些介绍。类做些介绍。Reader Reader类可译为读者类,这是一个用于读字符流的抽象类,主类可译为读者类,这是一个用于读字符流的抽象类,主要用来声明一个要用来声明一个readerreader对象。对象。LineNumberReader LineNumberReader类用字符流方式读取文件,本例使用该类这类用字符流方式读取文件,本例使用该类这样一个特点,即在使用样一个特

41、点,即在使用readLine()readLine()方法读取文件的一行时,可以用方法读取文件的一行时,可以用getLineNumber()getLineNumber()方法获取该行的行号。表方法获取该行的行号。表10-1010-10给出了该类的常用给出了该类的常用构造方法和常用成员方法。构造方法和常用成员方法。10.5 10.5 使用使用LineNumberReaderLineNumberReader类类 表表10-10 LineNumberReader10-10 LineNumberReader类的常用构造方法和成员方法类的常用构造方法和成员方法 实例实例 为源程序加行号为源程序加行号构造方

42、法和成员方法构造方法和成员方法解释解释public LineNumberReader(Reader in)创建一个创建一个LineNumberReader对象,参数对象,参数in是是Reader类型的类型的public String readLine()读取当前行,并把行指针自动移到下一读取当前行,并把行指针自动移到下一行行public int getLineNumber()获取当前行的行号获取当前行的行号10.6 10.6 随机读写文件随机读写文件 前几节所述顺序读写文件的方式只能按顺序读或者按顺序写,不能前几节所述顺序读写文件的方式只能按顺序读或者按顺序写,不能在文件的任意位置进行读写;另

43、一方面读和写必须针对不同的文件对象在文件的任意位置进行读写;另一方面读和写必须针对不同的文件对象进行,不能对同一个文件进行既读又写的操作。要在文件的任意位置进进行,不能对同一个文件进行既读又写的操作。要在文件的任意位置进行既读又写的操作,需要行既读又写的操作,需要RandomAccessFileRandomAccessFile类。表类。表10-1110-11给出了给出了RandomAccessFileRandomAccessFile类的构造方法,表类的构造方法,表10-1210-12给出了给出了RandomAccessFileRandomAccessFile类类的常用成员方法。的常用成员方法。

44、表表10-11 RandomAccessFile10-11 RandomAccessFile类的构造方法类的构造方法构造方法构造方法解释解释public RandomAccessFile(String name,String mode)创建随机读写文件对象,参数创建随机读写文件对象,参数name为文为文件名;参数件名;参数mode规定读写方式,若为规定读写方式,若为“r”是只读方式。若为是只读方式。若为“rw”是读写方是读写方式式public RandomAccessFile(File file,String mode)创建随机读写文件对象,参数创建随机读写文件对象,参数file指定文指定文件

45、;参数件;参数mode规定读写方式,同上规定读写方式,同上10.6 10.6 随机读写文件随机读写文件 表表10-12 RandomAccessFile10-12 RandomAccessFile类的常用方法类的常用方法类类别别常用方法常用方法解释解释文文件件操操作作public void close()关闭文件关闭文件public long getFilePointer()获取文件读写指针获取文件读写指针public long length()获取文件长度获取文件长度public void setLength(long newLength)设置文件长度,若参数设置文件长度,若参数newLen

46、gth小于文件原长度,小于文件原长度,文件被截短,若大于文件文件被截短,若大于文件原长度,文件延长,延长原长度,文件延长,延长部分的内容不确定部分的内容不确定public void seek(long pos)设置文件读写指针设置文件读写指针public int skipBytes(int n)文件读写指针跳过文件读写指针跳过n字节字节10.6 10.6 随机读写文件随机读写文件类别类别常用方法常用方法解释解释随机读文随机读文件件public int read()读一个字节读一个字节public int read(byte b,int off,int len)读读len个字节存放在字节数组个字

47、节存放在字节数组b中偏移中偏移off开始处开始处public int read(byte b)public final void readFully(byte b)读字节到字节数组读字节到字节数组b,读取的字节数决定于数组,读取的字节数决定于数组b的长的长度度public final void readFully(byte b,int off,int len)读读len个字节存放在字节数组个字节存放在字节数组b中偏移中偏移off开始处开始处public final boolean readBoolean()读一个字节作为布尔值读一个字节作为布尔值public final byte readBy

48、te()读一个字节作为有符号数读一个字节作为有符号数public final short readShort()读两个字节作为有符号数读两个字节作为有符号数public final char readChar()读两个字节作为读两个字节作为Unicode字符字符public final int readInt()读读4个字节作为整型数个字节作为整型数public final long readLong()读读8个字节作为长整型数个字节作为长整型数public final float readFloat()读读4个字节作为浮点数个字节作为浮点数public final double readDo

49、uble()读读8个字节作为双精度浮点数个字节作为双精度浮点数public final String readLine()读一行数据作为字符串返回读一行数据作为字符串返回10.6 10.6 随机读写文件随机读写文件类别类别常用方法常用方法解释解释随机写文件随机写文件public void write(byte b)把字节数组把字节数组b写到文件写到文件public void write(byte b,int off,int len)把字节数组把字节数组b中从偏移中从偏移off开始的开始的len个字节写到文件个字节写到文件public final void writeBoolean(boolea

50、n v)把一个布尔值写到文件把一个布尔值写到文件public final void writeByte(int v)把一个有符号数作为字节写到文件把一个有符号数作为字节写到文件public final void writeShort(int v)把一个有符号数作为两个字节写到文件把一个有符号数作为两个字节写到文件public final void writeChar(int v)把一个字符作为两个字节写到文件把一个字符作为两个字节写到文件public final void writeInt(int v)把整数作为把整数作为4个字节写到文件个字节写到文件public final void wri

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(电子教案·《Java程序设计实例教程》.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|