ImageVerifierCode 换一换
格式:PPT , 页数:31 ,大小:699.01KB ,
文档编号:5191920      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5191920.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

Java程序设计实用教程第10章输入、输出流课件.ppt

1、1注意:开始用功了注意:开始用功了!2Java程序设计实用教程程序设计实用教程 第第10章章配合例子源代码一起使用例子源代码一起使用Power point 制作:耿祥义 张跃平输入、输出流 3导导读读4 输入、输出流提供一条通道程序,可以使用这条通输入、输出流提供一条通道程序,可以使用这条通道读取源中的数据或把数据传送到目的地。道读取源中的数据或把数据传送到目的地。把输入流的指向称作源,程序从指向源的输入流中读把输入流的指向称作源,程序从指向源的输入流中读取源中的数据;取源中的数据;而输出流的指向是数据要去的一个目的地,程序通过而输出流的指向是数据要去的一个目的地,程序通过向输出流中写入数据把

2、数据传送到目的地。向输出流中写入数据把数据传送到目的地。概述概述510.1 FileFile类类 FileFile对象主要用来获取文件本身的一些信息,对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。不涉及对文件的读写操作。创建一个创建一个FileFile对象的构造方法有对象的构造方法有3 3个:个:File(String filename);File(String directoryPath,String filename);File(File f,String filename);610.1.1 文件的属性文件的属性 File类的下列方法获取文件本身的一些信息。类的下列方法获取文

3、件本身的一些信息。public String getName()获取文件的名字。public boolean canRead()判断文件是否是可读的。public boolean canWrite()判断文件是否可被写入。public boolean exits()判断文件是否存在。public long length()获取文件的长度(单位是字节)。public String getAbsolutePath()获取文件的绝对路径。public String getParent()获取文件的父目录。public boolean isFile()判断文件是否是一个普通文件,而不是目录。publi

4、c boolean isDirectroy()判断文件是否是一个目录。public boolean isHidden()判断文件是否是隐藏文件。public long lastModified()获取文件最后修改的时间。例例10-110-17例例10-110-1例例10-1 10-1 Example10_1.javaExample10_1.java page 177page 177810.1.2 目录目录 1 1创建目录创建目录 public boolean mkdir()2 2列出目录中的文件列出目录中的文件 public String list()用字符串形式返回目录下的全部文件。publ

5、ic File listFiles()用File对象形式返回目录下的全部文件。public String list(FilenameFilter obj)用字符串形式返回目录下的指定类型的所有文件。public File listFiles(FilenameFilter obj)用File对象形式返回目录下的指定类型所有文件。上述两方法的参数上述两方法的参数FilenameFilter是一个接口是一个接口,该接口有一个该接口有一个方法:方法:public boolean accept(File dir,String name);例例10-2 10-2 Example10_2.javaExamp

6、le10_2.java ,FileAcceptFileAccept.java.java 910.1.3 文件的创建与删除文件的创建与删除 当使用当使用FileFile类创建一个文件对象后,例如类创建一个文件对象后,例如 File file=new File(c:myletter,letter.txt);如果如果c:myletter目录中没有名字为目录中没有名字为letter.txt文件文件,文件对文件对象象filefile调用方法调用方法 public boolean createNewFile();可以在可以在c:myletter目录中建立一个名字为目录中建立一个名字为letter.txt的

7、的 文件对象调用方法文件对象调用方法 public boolean delete()可以删除当可以删除当前文件,例如:前文件,例如:file.delete();1010.1.4 运行可执行文件运行可执行文件 用用Runtime Runtime 类类声明一个对象声明一个对象(RuntimeRuntime类在类在java.java.langlang包包)Runtime ec;然后使用该类的然后使用该类的getRuntime()静态方法创建这个对象:静态方法创建这个对象:ec=Runtime.getRuntime();ecec可以调用可以调用exec(String command)方法打开本地机的方

8、法打开本地机的可执行文件或执行一个操作。可执行文件或执行一个操作。例例10-3 10-3 Example10_3.javaExample10_3.java 1110.2 字节流与字符流字节流与字符流 java.java.ioio包提供了大量的流类,包提供了大量的流类,JavaJava把把InputStreamInputStream抽象类的子类创建的流对象称作字抽象类的子类创建的流对象称作字节输入流、节输入流、OutputStreamOutputStream抽象类的子类创建的抽象类的子类创建的流对象称作字节输出流,流对象称作字节输出流,JavaJava把把ReaderReader抽象类抽象类的子

9、类创建的流对象称作字符输入流、的子类创建的流对象称作字符输入流、WriterWriter抽象类的子类创建的流对象称作字符输出流。抽象类的子类创建的流对象称作字符输出流。针对不同的源或目的地,针对不同的源或目的地,java.java.ioio包为程序包为程序提供了相应的输入流或输出流,这些输入、输提供了相应的输入流或输出流,这些输入、输出流绝大部分都是出流绝大部分都是InputStreamInputStream、OutputStreamOutputStream、ReaderReader或或WriterWriter的子类。的子类。1210.2.1 InputStreamInputStream类与类

10、与OutputSreamOutputSream类类 InputStream类提供的类提供的read方法以字节为单位顺序地读取源方法以字节为单位顺序地读取源中的数据,只要不关闭流,每次调用中的数据,只要不关闭流,每次调用read方法就顺序地读取源中方法就顺序地读取源中的其余内容,直到源的末尾或输入流被关闭。的其余内容,直到源的末尾或输入流被关闭。InputStream类有如下常用的方法。类有如下常用的方法。int read()int read(byte b)int read(byte b,int off,int len)void close()long skip(long numBytes)Ou

11、tputStream流以字节为单位顺序地写文件,只要不关闭流以字节为单位顺序地写文件,只要不关闭流,每次调用流,每次调用write方法就顺序地向目的地写入内容,直到流被方法就顺序地向目的地写入内容,直到流被关闭。关闭。OutputStream类有如下的常用的方法。类有如下的常用的方法。void write(int n)void write(byte b)void write(byte b,int off,int len)void close()13 10.2.2 Reader类与类与Writer类类 1Reader类提供的类提供的read方法以字符为单位顺序地读取源中的方法以字符为单位顺序地读

12、取源中的数据。数据。int read():int read(char b):int read(char b,int off,int len):void close():long skip(long numBytes):2 Writer流以字符为单位顺序地写文件,每次调用流以字符为单位顺序地写文件,每次调用write方法方法就顺序地向目的地写入内容。就顺序地向目的地写入内容。Writer类有如下常用的方法。类有如下常用的方法。void write(int n):向输出流写入一个字符。void write(byte b):向输出流写入一个字符数组。void write(byte b,int off

13、,int length):从给定字符数组中起始于偏移量off处取len个字符写到输出流。void close():关闭输出流。14 10.2.3 关闭流关闭流 流都提供了关闭方法流都提供了关闭方法close(),尽管程序结束时会自尽管程序结束时会自动关闭所有打开的流,但是当程序使用完流后,显式地动关闭所有打开的流,但是当程序使用完流后,显式地关闭任何打开的流仍是一个良好的习惯。关闭任何打开的流仍是一个良好的习惯。通过调用通过调用close()方法,可以保证操作系统把流缓冲方法,可以保证操作系统把流缓冲区的内容写到它的目的地,即关闭输出流可以把该流所区的内容写到它的目的地,即关闭输出流可以把该流

14、所用的缓冲区的内容冲洗掉。用的缓冲区的内容冲洗掉。1510.3 文件字节流文件字节流 由于应用程序经常需要和文件打交道,所以由于应用程序经常需要和文件打交道,所以I n p u t S t r e a m 专 门 提 供 了 读 写 文 件 的 子 类:专 门 提 供 了 读 写 文 件 的 子 类:FileInputStream和和FileOutputSream类。如果程序对文类。如果程序对文件的操作比较简单,比如只是顺序地读写文件,那么就件的操作比较简单,比如只是顺序地读写文件,那么就可以使用可以使用FileInputStream和和FileOutputSream类创建的类创建的流对文件进

15、行读写操作。流对文件进行读写操作。1610.3.1 文件字节输入流文件字节输入流 1 1创建文件字节输入流创建文件字节输入流 FileInputStream FileInputStream类创建的对象被称作文件字节输入流。类创建的对象被称作文件字节输入流。构造方法构造方法:FileInputStream(String name);FileInputStream(File file);读取一个名为读取一个名为hello.txthello.txt的文件,建立一个文件输入流对象,如下所示:的文件,建立一个文件输入流对象,如下所示:try FileInputStream in=new FileInpu

16、tStream(hello.txt);catch(IOException e)System.out.println(File read error:+e);2 2readread方法方法以字节为单位读文件以字节为单位读文件 int read();int read(byte b);int read(byte b,int off,int len);例例10-4 10-4 Example10_4.javaExample10_4.java 1710.3.2 文件字节输出流文件字节输出流 1 1创建文件字节输创建文件字节输出出流流 FileOutputStream FileOutputStream类创建

17、的对象被称作文件字节输出流。类创建的对象被称作文件字节输出流。构造方法:构造方法:FileOutputStream(String name)FileOutputStream(File file)2 2以字节为单位写文件以字节为单位写文件 FileOutputStreamFileOutputStream流的目的地是文件,所以文件输出流调用流的目的地是文件,所以文件输出流调用write(byte b)方法把字节写入到文件。方法把字节写入到文件。例例10-5 10-5 Example10_5.javaExample10_5.java 1810.4 文件字符流文件字符流 1 1FileReader和和

18、FileWriter用来创建文件字符输入、输用来创建文件字符输入、输出出流,流,构造方法:构造方法:FileReader(String filename);FileReader(File filename);FileWriter(String filename);FileWriter(File filename);2 2字符输入流和输出流的字符输入流和输出流的read()和和write()方法方法以字符为基本单位以字符为基本单位处理数据。处理数据。例例10-6 10-6 Example10_6.javaExample10_6.java 1910.5 缓冲流缓冲流 1 1BufferedRead

19、erBufferedReader和和BufferedWriterBufferedWriter类创建的对象称作缓冲输类创建的对象称作缓冲输入、输出流。二者的源和目的地必须是字符输入流和字符输出流。入、输出流。二者的源和目的地必须是字符输入流和字符输出流。构造方法:构造方法:BufferedReader(Reader in);BufferedWriter(Writer out);2 2 BufferedReaderBufferedReader和和BufferedWriterBufferedWriter类读写文件的方法:类读写文件的方法:readLine()BufferedReader流读取文本行

20、write(String s,int off,int len)BufferedWriter流把字符串s写到文件中 newLine();BufferedWriter流向文件写入一个回行符 例例10-7 10-7 Example10_7.javaExample10_7.java 2010.6 随机流随机流 使用使用RandomAccessFileRandomAccessFile类来创建一个随机访问文件流。类来创建一个随机访问文件流。RandomAccessFileRandomAccessFile类创建的流的指向既可以作为源也可以作为目类创建的流的指向既可以作为源也可以作为目的地。的地。构造方法:构

21、造方法:RandomAccessFile(String name,String mode);RandomAccessFile(File file,String mode);相关方法:相关方法:seek(long a)定位RandomAccessFile流的读写位置 getFilePointer()获取流的当前读写位置 例例10-8 10-8 Example10_8.java Example10_8.java 表表10.1 10.1 RandomAccessFileRandomAccessFile类的常用方法类的常用方法 处理处理readLinereadLine()()方法方法在读取含有非在读取

22、含有非ASCIIASCII字符的文件时出现字符的文件时出现“乱码乱码”现象的方法:现象的方法:1 1读取读取 String str=in.readLine();2 2用用“isoiso-8859-1”-8859-1”重新编码重新编码 byte b=str.getBytes(iso-8859-1);3 3使用当前机器的默认编码将字节数组转化为字符串使用当前机器的默认编码将字节数组转化为字符串 String content=new String(b);例例10-9 10-9 Example10_9.javaExample10_9.java 21表表10.1 10.1 RandomAccessFil

23、eRandomAccessFile类的常用方法类的常用方法2210.7 数组流数组流 1 1字节数组流字节数组流:字节数组输入流字节数组输入流ByteArrayInputStream和字节数和字节数组输出流组输出流ByteArrayOutputStream分别使用字节数组作为流的源和分别使用字节数组作为流的源和目标。目标。ByteArrayInputStreamByteArrayInputStream构造方法及构造方法及常用方法常用方法 ByteArrayInputStream(byte buf);ByteArrayInputStream(byte buf,int offset,int len

24、gth);public int read();顺序地从源中读出一个字节顺序地从源中读出一个字节 public int read(byte b,int off,int len);顺序地从源中读出参数顺序地从源中读出参数lenlen指定的字节指定的字节数数 ByteArrayOutputStreamByteArrayOutputStream流流构造方法及构造方法及常用方法常用方法 ByteArrayOutputStream();ByteArrayOutputStream(int size);public void write(int b);顺序地向缓冲区写入一个字节顺序地向缓冲区写入一个字节 pu

25、blic void write(byte b,int off,int len);将参数将参数b b中指定的中指定的lenlen个字节顺序个字节顺序地写入缓冲区地写入缓冲区 public byte toByteArray();返回输出流写入到缓冲区的全部字节返回输出流写入到缓冲区的全部字节 2字符数组字符数组 CharArrayReader和和CharArrayWriter类类是字符数组流是字符数组流,字符数组流,字符数组流分别使分别使用字符数组作为流的源和目标。用字符数组作为流的源和目标。例例10-10 10-10 Example10_10.javaExample10_10.java 2310

26、.8 数据流数据流 DataInputStream和和DataOutputStream类类创建的对象称为创建的对象称为数据输入流和数据输出流。数据输入流和数据输出流。构造方法构造方法DataInputStream(InputStream in)创建的数据输入流指向一个由参数in指定的底层输入流DataOutputStream(OutnputStream out)创建的数据输出流指向一个由参数out指定的底层输出流表表10.210.2是是DataInputStreamDataInputStream和和DataOutputStreamDataOutputStream类的常用方法类的常用方法 例例1

27、0-11 10-11 Example10_11.javaExample10_11.java 例例10-12 10-12 Example10_12.javaExample10_12.java EncryptAndDecryptEncryptAndDecrypt.java.java 24表表10.2 10.2 DataInputStreamDataInputStream及及DataOutputSteamDataOutputSteam类的部分方法类的部分方法 2510.9 对象流对象流 ObjectInputStream和和ObjectOutputStream类类创建的对象创建的对象称为对象输入流和

28、对象输出流。称为对象输入流和对象输出流。它的构造方法是:它的构造方法是:ObjectInputStream(InputStream in)ObjectOutputStream(OutputStream out)相关方法:相关方法:writeObject(Object obj)将一个对象将一个对象obj写入到一个文件写入到一个文件 readObject()读取一个对象到程序中读取一个对象到程序中 所谓序列化:一个类如果实现了所谓序列化:一个类如果实现了Serializable接口,那么这个接口,那么这个类创建的对象就是所谓序列化的对象。类创建的对象就是所谓序列化的对象。例例10-13 10-13

29、 TV.java TV.java Example10_13.javaExample10_13.java 2610.10 序列化与对象克隆序列化与对象克隆 如果一个如果一个“复制品复制品”实体的变化不会引起原对象实实体的变化不会引起原对象实体发生变化,反之亦然。这样的复制品称为原对象的一体发生变化,反之亦然。这样的复制品称为原对象的一个克隆对象或简称克隆。个克隆对象或简称克隆。一个对象调用一个对象调用clone()方法就可以获取该对象的克隆方法就可以获取该对象的克隆对象。对象。对象输入流通过对象的序列化信息来得到当前对象对象输入流通过对象的序列化信息来得到当前对象的一个克隆。的一个克隆。例例10

30、-13 10-13 TV.java TV.java Example10_13.javaExample10_13.java 2710.11 文件锁文件锁 FileLockFileLock、FileChannelFileChannel类类处理处理JavaJava提供的文件锁功能。它们提供的文件锁功能。它们分别在分别在java.java.nionio和和java.java.nionio.channels.channels包中。包中。输入、输出流读写文件时可以使用文件锁。输入、输出流读写文件时可以使用文件锁。RondomAccessFile创建的流在读写文件时使用文件锁的步骤创建的流在读写文件时使用文

31、件锁的步骤如下:如下:1 1先使用先使用RondomAccessFileRondomAccessFile流建立指向文件的流对象,该对象流建立指向文件的流对象,该对象的读写属性必须是的读写属性必须是rwrw,例如:例如:RandomAccessFile input=new RandomAccessFile(Example.java,rw);2 2InputInput流调用方法流调用方法getChannelgetChannel()()获得一个连接到地层文件的获得一个连接到地层文件的FileChannelFileChannel对象(信道),例如对象(信道),例如 FileChannel channe

32、l=input.getChannel();3 3信道调用信道调用tryLocktryLock()()或或lock()lock()方法获得一个方法获得一个FileLockFileLock(文件锁)文件锁)对象,这一过程也称作对文件加锁,例如:对象,这一过程也称作对文件加锁,例如:FileLock lock=channel.tryLock();例例10-14 10-14 Example10_14.javaExample10_14.java 2810.12 使用使用ScannerScanner解析文件解析文件_1_1 使用使用ScannerScanner类和正则表达式来解析文件。类和正则表达式来解析

33、文件。1 1使用默认分隔标记解析文件使用默认分隔标记解析文件 创建创建ScannerScanner对象,并指向要解析的文件,例如:对象,并指向要解析的文件,例如:File file=new File(hello.java);Scanner sc=new Scanner(file);scsc将空白作为分隔标记将空白作为分隔标记,相关方法:相关方法:next()依次返回file中的单词 hasNext()判断file最后一个单词是否已被next()方法返回 例例10-15 10-15 Example10_15.javaExample10_15.java ,cost.txtcost.txt2910.

34、12 使用使用ScannerScanner解析文件解析文件_2_2 2 2使用正则表达式作为分隔标记解析文件使用正则表达式作为分隔标记解析文件 创建创建ScannerScanner对象,指向要解析的文件,并使用对象,指向要解析的文件,并使用useDelimiteruseDelimiter方方法指定正则表达式作为分隔标记,例如法指定正则表达式作为分隔标记,例如:File file=new File(hello.java);Scanner sc=new Scanner(file);sc.useDelimiter(正则表达式正则表达式);sc将正则表达式作为分隔标记将正则表达式作为分隔标记 相关方法

35、:相关方法:next()依次返回file中的单词 hasNext()判断file最后一个单词是否已被next()方法返回例例10-16 10-16 Example10_16.javaExample10_16.java student.txtstudent.txt 3010.13 使用使用ConsoleConsole流读取密码流读取密码 JDK1.6 JDK1.6版本在版本在java.java.ioio包中新增了一个包中新增了一个ConsoleConsole流可以读取用流可以读取用户在命令行输入的密码,而且用户在命令行输入的密码不会显示户在命令行输入的密码,而且用户在命令行输入的密码不会显示在命令行中。在命令行中。首先使用首先使用SystemSystem类调用类调用console()方法返回一个方法返回一个ConsoleConsole流:流:Console cons=System.console();然后,然后,ConsoleConsole流调用流调用readPassword()方法读取用户在键盘方法读取用户在键盘输入的密码,并将密码以一个输入的密码,并将密码以一个charchar数组返回:数组返回:char passwd=cons.readPassword();例例10-17 10-17 Example10_17.javaExample10_17.java 31

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

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


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