第2章Java IO系统.ppt
《第2章Java IO系统.ppt》由会员分享,可在线阅读,更多相关《第2章Java IO系统.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaIO系统系统第第二二章章本章相关词汇本章相关词汇单单 词词说说 明明input输入输入output输出输出file文件,档案文件,档案directory目录目录stream流流write写,书写写,书写read读,阅读读,阅读source源头,来源源头,来源destination目标,目的地目标,目的地print打印打印本章目标本章目标n复习复习IO包,强化区分字符包,强化区分字符/字节的区别字节的区别n运用运用FileInputStream类和类和FileOutputStream类完成复制文件的功能类完成复制文件的功能n运用运用FileReader类和类和FileWriter类配合类
2、配合BufferedReader类和类和BufferedWriter类来进行字符的读取和写入功能类来进行字符的读取和写入功能n运用运用InputStreamReader类和类和BufferedReader类来完成控制台输入的功能类来完成控制台输入的功能n清楚清楚PrintWriter类的使用方式类的使用方式:System.outJSP:outjava.io包简介包简介njava.io包也是包也是Java内置的包,其中包含一系列对文件和内置的包,其中包含一系列对文件和目录的属性进行操作,对文件进行读写操作的类;目录的属性进行操作,对文件进行读写操作的类;n程序中如果要使用到该包中的类,对文件或流
3、进行操作,程序中如果要使用到该包中的类,对文件或流进行操作,则必须显式地声明如下语句:则必须显式地声明如下语句:import java.io.*;文件文件n什么是文件?什么是文件?文件可以认为是相关记录或存放在一起的数据的集合;文件可以认为是相关记录或存放在一起的数据的集合;n文件一般是存放在磁盘上的,例如:硬盘、软盘和光盘等等。文件一般是存放在磁盘上的,例如:硬盘、软盘和光盘等等。File类类nFile类的对象不但可以表示文件,还可以表示目录,在程序类的对象不但可以表示文件,还可以表示目录,在程序中一个中一个File类对象可以代表一个文件或目录;类对象可以代表一个文件或目录;n当创建一个文件
4、对象后,就可以利用它来对文件或目录的当创建一个文件对象后,就可以利用它来对文件或目录的属性属性进行操作,如:文件名、最后修改日期、文件大小等进行操作,如:文件名、最后修改日期、文件大小等等;等;n需要注意的是,需要注意的是,File对象并不能直接对文件进行读对象并不能直接对文件进行读/写操作,写操作,只能查看文件的属性;只能查看文件的属性;File类的构造方法类的构造方法nFile类的构造方法有类的构造方法有4种重载方式,常用的如下:种重载方式,常用的如下:n如:如:/在当前目录下创建一个与在当前目录下创建一个与aaa.txt文件名相关联的文件对象文件名相关联的文件对象File f1=new
5、File(aaa.txt);/指明详细的路径以及文件名,请注意双斜线指明详细的路径以及文件名,请注意双斜线File f2=new File(D:JavaHello.java);构构 造造 方方 法法说说 明明File(Stringpathname)指定文件(或目录)名和路径创建文件对象指定文件(或目录)名和路径创建文件对象File类中的常用方法类中的常用方法方方法法原原型型说说明明booleanexists()判断文件是否存在,存在返回判断文件是否存在,存在返回true,否则返回,否则返回falsebooleanisFile()判断是否为文件,是文件返回判断是否为文件,是文件返回true,否则
6、返回,否则返回falsebooleanisDirectory()判断是否为目录,是目录返回判断是否为目录,是目录返回true,否则返回,否则返回falseStringgetName()获得文件的名称获得文件的名称StringgetAbsolutePath()获得文件的绝对路径获得文件的绝对路径longlength()获得文件的长度(字节数)获得文件的长度(字节数)booleancreateNewFile()throwsIOException创建新文件,创建成功返回创建新文件,创建成功返回true,否则返回,否则返回false,有可能抛出,有可能抛出IOException异常,必须捕捉异常,必须
7、捕捉booleandelete()删除文件,删除成功返回删除文件,删除成功返回true,否则返回,否则返回falseFile类示例类示例public class FileDemo public static void main(String args)/创建一个文件对象,使之与一个文件关联 File file=new File(test.txt);/显示与文件有关的属性信息 System.out.println(文件或目录是否存在:+file.exists();System.out.println(是文件吗:+file.isFile();System.out.println(是目录吗:+fil
8、e.isDirectory();System.out.println(名称:+file.getName();System.out.println(绝对路径:+file.getAbsolutePath();System.out.println(最后修改时间:+file.lastModified();System.out.println(文件大小:+file.length();stream(流)(流)n流是指一连串流动的数据信号,是以先进先出的方式发送流是指一连串流动的数据信号,是以先进先出的方式发送和接收数据的通道。和接收数据的通道。ABCDEFInputStream来自数据源的数据流Outpu
9、tStream流向目的地的数据流流(续)流(续)流的类型流的类型n根据流动方向的不同,流分为根据流动方向的不同,流分为输入流输入流和和输出流输出流;n对于输入和输出流,由于传输格式的不同,又分为对于输入和输出流,由于传输格式的不同,又分为字节流字节流和和字符流字符流:n字节流是指字节流是指8位的通用字节流,以字节为基本位的通用字节流,以字节为基本单位,在单位,在java.io包中,对于字节流进行操作的包中,对于字节流进行操作的类大部分继承于类大部分继承于InputStream(输入字节流)(输入字节流)类和类和OutputStream(输出字节流)类;(输出字节流)类;n字符流是指字符流是指1
10、6位的位的Unicode字符流,以字符字符流,以字符(两个字节)为基本单位,非常适合处理字符(两个字节)为基本单位,非常适合处理字符串和文本,对于字符流进行操作的类大部分继串和文本,对于字符流进行操作的类大部分继承于承于Reader(读取流)类和(读取流)类和Writer(写入流)(写入流)类。类。使用使用FileInputStream类读文件类读文件nFileInputStream类称为文件输入流,继承于类称为文件输入流,继承于InputStream类,是进行文件读操作的最基本类;类,是进行文件读操作的最基本类;n它的作用是将文件中的数据输入到内存中,我们可以利用它的作用是将文件中的数据输入
11、到内存中,我们可以利用它来读文件;它来读文件;n由于它属于字节流,因此在读取由于它属于字节流,因此在读取Unicode字符(如中文)字符(如中文)的文件时可能会出现问题。的文件时可能会出现问题。FileInputStream类的构造方法类的构造方法nFileInputStream类的构造方法有类的构造方法有3种重载方式,以下是常用的几种。种重载方式,以下是常用的几种。构构 造造 方方 法法说说 明明FileInputStream(Filefile)throwsFileNotFoundException使用使用File对象创建文件输入流对象,如果文件打开对象创建文件输入流对象,如果文件打开失败,
12、将抛出异常失败,将抛出异常FileInputStream(Stringname)throwsFileNotFoundException使用文件名或路径创建文件输入流对象,如果文使用文件名或路径创建文件输入流对象,如果文件打开失败,将抛出异常件打开失败,将抛出异常FileInputStream类的常用方法类的常用方法方方 法法 原原 型型说说 明明intread()throwsIOException读取文件中的数据,一次读取一个字节,读取的数据读取文件中的数据,一次读取一个字节,读取的数据作为返回值返回,如果读到文件末尾则返回作为返回值返回,如果读到文件末尾则返回-1,有可能,有可能抛异常,必须
13、捕捉抛异常,必须捕捉intread(byteb)throwsIOException读取文件中的数据,将读到的数据存放到读取文件中的数据,将读到的数据存放到byte型数组型数组中,并返回读取的字节的数量,未读到数据返回中,并返回读取的字节的数量,未读到数据返回-1,有,有可能抛异常,必须捕捉可能抛异常,必须捕捉voidclose()throwsIOException关闭流对象,有可能抛异常,必须捕捉关闭流对象,有可能抛异常,必须捕捉FileInputStream对象读文件示例对象读文件示例1public class FileInputStreamDemo1 public static void
14、main(String args)try File file=new File(test.txt);/创建文件对象 /使用文件对象创建文件输入流对象,相当于打开文件 FileInputStream fis=new FileInputStream(file);for(int i=0;i file.length();i+)char ch=(char)(fis.read();/循环读取字符 System.out.print(ch);System.out.println();fis.close();/关闭流 catch(FileNotFoundException fnfe)System.out.pri
15、ntln(文件打开失败。);catch(IOException ioe)ioe.printStackTrace();FileInputStream对象读文件示例对象读文件示例2public class FileInputStreamDemo2 public static void main(String args)try File file=new File(test.txt);/创建文件对象 FileInputStream fis=new FileInputStream(file);/根据文件的字节长度创建字节数组 byte buf=new byte(int)(file.length();f
16、is.read(buf);/读取文件中的数据存放到字节数组中 String str=new String(buf);/利用字节数组创建字符串 System.out.println(str);/打印字符串 fis.close();/关闭流 catch(FileNotFoundException fnfe)System.out.println(文件打开失败。);catch(IOException ioe)ioe.printStackTrace();使用使用FileOutputStream类写文件类写文件nFileOutputStream类称为文件输出流,继承于类称为文件输出流,继承于OutputS
17、tream类,是进行文件写操作的最基本类;类,是进行文件写操作的最基本类;n它的作用是将内存中的数据输出到文件中,我们可以利用它的作用是将内存中的数据输出到文件中,我们可以利用它来写文件。它来写文件。FileOutputStream类的构造方法类的构造方法nFileOutputStream类的构造方法有类的构造方法有5种重载方式,以下是常用的几种。种重载方式,以下是常用的几种。构构 造造 方方 法法说说 明明FileOutputStream(Filefile)throwsFileNotFoundException使用使用File对象创建文件输出流对象,如果文件打开失败,将对象创建文件输出流对象
18、,如果文件打开失败,将抛出异常抛出异常FileOutputStream(Filefile,booleanappend)throwsFileNotFoundException使用使用File对象创建文件输出流对象,并由参数对象创建文件输出流对象,并由参数append指定指定是否追加文件内容,是否追加文件内容,true为追加,为追加,false为不追加,异常情况为不追加,异常情况同上同上FileOutputStream(Stringname)throwsFileNotFoundException直接使用文件名或路径创建文件输出流对象,异常情况同上直接使用文件名或路径创建文件输出流对象,异常情况同上
19、FileOutputStream(Stringname,booleanappend)throwsFileNotFoundException直接使用文件名或路径创建文件输出流对象,并由参数直接使用文件名或路径创建文件输出流对象,并由参数append指定是否追加,异常情况同上指定是否追加,异常情况同上FileOutputStream类的常用方法类的常用方法方方 法法 原原 型型说说 明明voidwrite(intb)throwsIOException往文件中写数据,一次写一个字节,有可能抛异常,往文件中写数据,一次写一个字节,有可能抛异常,必须捕捉必须捕捉voidwrite(byteb)throw
20、sIOException往文件中写数据,将往文件中写数据,将byte数组中的数据全部写入到文数组中的数据全部写入到文件中,有可能抛异常,必须捕捉件中,有可能抛异常,必须捕捉voidclose()throwsIOException关闭流对象,有可能抛异常,必须捕捉关闭流对象,有可能抛异常,必须捕捉FileOutputStream对象写文件示例对象写文件示例1public class FileOutputStreamDemo1 /在函数内部不进行异常处理,将异常抛出函数外部 public static void main(String args)throws IOException String
21、str=Hello world!;File file=new File(test.txt);/创建文件对象 /通过文件对象创建文件输出流对象 /附加第二个参数true,指定进行文件追加,默认为不追加 FileOutputStream fos=new FileOutputStream(file,true);/逐个将字符写入到文件中 for(int i=0;i str.length();i+)fos.write(str.charAt(i);fos.close();/关闭流 FileOutputStream对象写文件示例对象写文件示例2public class FileOutputStreamDem
22、o2 /在函数内部不进行异常处理,将异常抛出函数外部 public static void main(String args)throws Exception String str=I Love Java;/通过文件名创建文件输出流对象 FileOutputStream fos=new FileOutputStream(test.txt);/将字符串转化为字节数组 byte buffer=str.getBytes();/将字节数组中包含的数据一次性写入到文件中 fos.write(buffer);/关闭流 fos.close();FileInputStream/FileOutputStream
23、小结小结nFileInputStream类和类和FileOutputStream类是成对出现的,类是成对出现的,一个进行输入(读文件)操作,一个进行输出(写文件)一个进行输入(读文件)操作,一个进行输出(写文件)操作;操作;n由于采用字节方式进行数据传输,不必考虑数据的格式问由于采用字节方式进行数据传输,不必考虑数据的格式问题,这两个类对文件操作的效率较高;题,这两个类对文件操作的效率较高;n可以使用这两个类完成复制文件的操作。可以使用这两个类完成复制文件的操作。复制文件示例复制文件示例public class CopyFileDemo public static void main(Stri
24、ng args)throws IOException File srcFile=new File(src.dat);/源文件对象 File destFile=new File(dest.dat);/目标文件对象 if(!(destFile.exists()/判断目标文件是否存在 destFile.createNewFile();/如果不存在则创建新文件 /使用源文件对象创建文件输入流对象 FileInputStream fis=new FileInputStream(srcFile);/使用目标文件对象创建文件输出流对象 FileOutputStream fos=new FileOutputS
25、tream(destFile);byte buf=new byte1024;/创建字节数组,作为临时缓冲 System.out.println(开始复制文件.);while(fis.read(buf)!=-1)/循环从文件输入流中读取数据 fos.write(buf);/写入到文件输出流中 System.out.println(文件复制成功!);fis.close();/关闭流 fos.close();字符流字符流nFileInputStram类和类和FileOutputStream类虽然可以高效类虽然可以高效率地读率地读/写文件,但对于写文件,但对于Unicode编码的文件,使用它们编码的文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 Java IO系统 IO 系统
限制150内