Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流

上传人:E**** 文档编号:89400053 上传时间:2019-05-24 格式:PPT 页数:31 大小:699KB
返回 下载 相关 举报
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流_第1页
第1页 / 共31页
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流_第2页
第2页 / 共31页
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流_第3页
第3页 / 共31页
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流_第4页
第4页 / 共31页
Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流》由会员分享,可在线阅读,更多相关《Java程序设计实用教程 教学课件 PPT 作者 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流(31页珍藏版)》请在金锄头文库上搜索。

1、2019/5/24,1,注意:开始用功了!,2019/5/24,2,Java程序设计实用教程 第10章,配合例子源代码一起使用,Power point 制作:耿祥义 张跃平,输入、输出流,2019/5/24,3,导 读,2019/5/24,4,输入、输出流提供一条通道程序,可以使用这条通道读取源中的数据或把数据传送到目的地。 把输入流的指向称作源,程序从指向源的输入流中读取源中的数据; 而输出流的指向是数据要去的一个目的地,程序通过向输出流中写入数据把数据传送到目的地。,概述,2019/5/24,5,10.1 File类,File对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。 创

2、建一个File对象的构造方法有3个: File(String filename); File(String directoryPath,String filename); File(File f, String filename);,2019/5/24,6,10.1.1 文件的属性,File类的下列方法获取文件本身的一些信息。 public String getName() 获取文件的名字。 public boolean canRead() 判断文件是否是可读的。 public boolean canWrite() 判断文件是否可被写入。 public boolean exits() 判断文件

3、是否存在。 public long length() 获取文件的长度(单位是字节)。 public String getAbsolutePath() 获取文件的绝对路径。 public String getParent() 获取文件的父目录。 public boolean isFile() 判断文件是否是一个普通文件,而不是目录。 public boolean isDirectroy() 判断文件是否是一个目录。 public boolean isHidden() 判断文件是否是隐藏文件。 public long lastModified() 获取文件最后修改的时间。 例10-1,2019/5

4、/24,7,例10-1,例10-1 Example10_1.java page 177,2019/5/24,8,10.1.2 目录,1创建目录 public boolean mkdir() 2列出目录中的文件 public String list() 用字符串形式返回目录下的全部文件。 public File listFiles() 用File对象形式返回目录下的全部文件。 public String list(FilenameFilter obj) 用字符串形式返回目录下的指定类型的所有文件。 public File listFiles(FilenameFilter obj) 用File对象

5、形式返回目录下的指定类型所有文件。 上述两方法的参数FilenameFilter是一个接口,该接口有一个方法: public boolean accept(File dir,String name); 例10-2 Example10_2.java , FileAccept.java,2019/5/24,9,10.1.3 文件的创建与删除,当使用File类创建一个文件对象后,例如 File file=new File(“c:myletter“,“letter.txt“); 如果c:myletter目录中没有名字为letter.txt文件,文件对象file调用方法 public boolean c

6、reateNewFile();可以在c:myletter目录中建立一个名字为letter.txt的 文件对象调用方法 public boolean delete()可以删除当前文件,例如: file.delete();,2019/5/24,10,10.1.4 运行可执行文件, 用Runtime 类声明一个对象( Runtime类在java.lang包) Runtime ec; 然后使用该类的getRuntime()静态方法创建这个对象: ec=Runtime.getRuntime(); ec可以调用exec(String command)方法打开本地机的可执行文件或执行一个操作。 例10-3

7、Example10_3.java,2019/5/24,11,10.2 字节流与字符流,java.io包提供了大量的流类,Java把InputStream抽象类的子类创建的流对象称作字节输入流、OutputStream抽象类的子类创建的流对象称作字节输出流,Java把Reader抽象类的子类创建的流对象称作字符输入流、Writer抽象类的子类创建的流对象称作字符输出流。 针对不同的源或目的地,java.io包为程序提供了相应的输入流或输出流,这些输入、输出流绝大部分都是InputStream、OutputStream、Reader或Writer的子类。,2019/5/24,12,10.2.1 I

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

9、utputStream类有如下的常用的方法。 void write(int n) void write(byte b ) void write(byte b , int off, int len) void close(),2019/5/24,13, 10.2.2 Reader类与Writer类,1Reader类提供的read方法以字符为单位顺序地读取源中的数据。 int read(): int read(char b): int read(char b, int off, int len): void close(): long skip(long numBytes): 2 Writer流以

10、字符为单位顺序地写文件,每次调用write方法就顺序地向目的地写入内容。 Writer类有如下常用的方法。 void write(int n): 向输出流写入一个字符。 void write(byte b): 向输出流写入一个字符数组。 void write(byte b,int off,int length): 从给定字符数组中起始于偏移量off处取len个字符写到输出流。 void close(): 关闭输出流。,2019/5/24,14, 10.2.3 关闭流,流都提供了关闭方法close(),尽管程序结束时会自动关闭所有打开的流,但是当程序使用完流后,显式地关闭任何打开的流仍是一个良好

11、的习惯。 通过调用close()方法,可以保证操作系统把流缓冲区的内容写到它的目的地,即关闭输出流可以把该流所用的缓冲区的内容冲洗掉。,2019/5/24,15,10.3 文件字节流,由于应用程序经常需要和文件打交道,所以InputStream专门提供了读写文件的子类:FileInputStream和FileOutputSream类。如果程序对文件的操作比较简单,比如只是顺序地读写文件,那么就可以使用FileInputStream和FileOutputSream类创建的流对文件进行读写操作。,2019/5/24,16,10.3.1 文件字节输入流,1创建文件字节输入流 FileInputStr

12、eam类创建的对象被称作文件字节输入流。 构造方法: FileInputStream(String name); FileInputStream(File file); 读取一个名为hello.txt的文件,建立一个文件输入流对象,如下所示: try FileInputStream in = new FileInputStream(“hello.txt“); catch (IOException e) System.out.println(“File read error:“+e ); 2read方法以字节为单位读文件 int read(); int read(byte b); int rea

13、d(byte b,int off,int len); 例10-4 Example10_4.java,2019/5/24,17,10.3.2 文件字节输出流,1创建文件字节输出流 FileOutputStream类创建的对象被称作文件字节输出流。 构造方法: FileOutputStream(String name) FileOutputStream(File file) 2以字节为单位写文件 FileOutputStream流的目的地是文件,所以文件输出流调用write(byte b )方法把字节写入到文件。 例10-5 Example10_5.java,2019/5/24,18,10.4 文

14、件字符流,1FileReader和FileWriter用来创建文件字符输入、输出流, 构造方法: FileReader(String filename); FileReader(File filename); FileWriter (String filename); FileWriter (File filename); 2字符输入流和输出流的read()和write()方法以字符为基本单位处理数据。 例10-6 Example10_6.java,2019/5/24,19,10.5 缓冲流,1BufferedReader和BufferedWriter类创建的对象称作缓冲输入、输出流。二者的源

15、和目的地必须是字符输入流和字符输出流。 构造方法: BufferedReader(Reader in); BufferedWriter (Writer out); 2 BufferedReader和BufferedWriter类读写文件的方法: readLine() BufferedReader流读取文本行 write(String s,int off,int len)BufferedWriter流把字符串s写到文件中 newLine(); BufferedWriter流向文件写入一个回行符,例10-7 Example10_7.java,2019/5/24,20,10.6 随机流,使用Rand

16、omAccessFile类来创建一个随机访问文件流。RandomAccessFile类创建的流的指向既可以作为源也可以作为目的地。 构造方法: RandomAccessFile(String name,String mode) ; RandomAccessFile(File file,String mode) ; 相关方法: seek(long a) 定位RandomAccessFile流的读写位置 getFilePointer() 获取流的当前读写位置 例10-8 Example10_8.java 表10.1 RandomAccessFile类的常用方法 处理readLine()方法在读取含有非ASCII字符的文件时出现“乱码”现象的方法: 1读取 String str=in.readLine(); 2用“iso-8859-1”重新编码 byte b=s

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

当前位置:首页 > 高等教育 > 大学课件

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