版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java程序设计实用教程(第4版)第第8章章 输入输入/输出流和文件操作输出流和文件操作 8.1 文件和流的概念文件和流的概念 8.2 字节输入字节输入/输出流类输出流类 8.3 字符输入字符输入/输出流类输出流类 8.4 文件操作文件操作本章讨论的类在java.io包中Java程序设计实用教程(第4版)第第8章章 输入输入/输出流和文件操作输出流和文件操作内容和要求:内容和要求:理解流的概念;掌握字节流和字符流对类型文件和文理解流的概念;掌握字节流和字符流对类型文件和文本文件进行顺序处理;熟悉在对象之间通过流传递数本文件进行顺序处理;熟悉在对象之间通过流传递数据的方法;了解据的方法;了解Ja
2、va的标准输入的标准输入/输出方法。输出方法。掌握文件操作,掌握掌握文件操作,掌握File类,熟悉文件过滤器、文件对类,熟悉文件过滤器、文件对话框;了解话框;了解RandomAccessFile随机存取文件类。随机存取文件类。重点:重点:各种字节流类,字符流类,各种字节流类,字符流类,File类。类。 难点:难点: 如何选择使用哪种字节流或字符流,掌握程序设如何选择使用哪种字节流或字符流,掌握程序设计方法,而不是死记硬背。计方法,而不是死记硬背。 操作系统的文件组织方式是树结构,递归算法。操作系统的文件组织方式是树结构,递归算法。Java程序设计实用教程(第4版)8.1 文件和流的概念文件和流
3、的概念8.1.1 操作系统中的文件和目录概念操作系统中的文件和目录概念1.文件与文件系统文件与文件系统文件文件(file)是信息的一种组织形式,是存储在外部是信息的一种组织形式,是存储在外部存储介质上的具有标志名的一组相关信息集合。存储介质上的具有标志名的一组相关信息集合。文件系统提供目录机制实现文件的文件系统提供目录机制实现文件的“按名存取按名存取”。文件的逻辑结构:流式文件、记录式文件;文件的逻辑结构:流式文件、记录式文件;2.文件的存取方式:顺序、随机、索引。文件的存取方式:顺序、随机、索引。Java程序设计实用教程(第4版)8.1.2 流的概念流的概念1.流:一组有顺序的、有起点和终点
4、的字节集合,流:一组有顺序的、有起点和终点的字节集合,是对数据传输的总称或抽象。是对数据传输的总称或抽象。2.缓冲流:配备缓冲区的流,一次从缓冲区中读缓冲流:配备缓冲区的流,一次从缓冲区中读写若干字节。写若干字节。3.流的存在流的存在Java程序设计实用教程(第4版)3. Java的流类与文件类的流类与文件类1.流类流类InputStream抽象字节输入流类抽象字节输入流类OuputStream抽象字节输出流类抽象字节输出流类Reader抽象字符输入流类抽象字符输入流类Writer抽象字符输出流类抽象字符输出流类2.文件类文件类File文件类文件类RandomAccessFile 随机存取文件
5、类随机存取文件类Java程序设计实用教程(第4版)3. Java的流类与文件类的流类与文件类Java程序设计实用教程(第4版)8.2 字节输入字节输入/输出流类输出流类n8.2.1 抽象字节流抽象字节流n8.2.2 文件字节流文件字节流Java程序设计实用教程(第4版)8.2.1 抽象字节流抽象字节流 1、InputStream抽象字节输入流类抽象字节输入流类public abstract class InputStream extends Object implements Closeable public abstract int read() throws IOException; /返
6、回读取的一个字节,抽象方法返回读取的一个字节,抽象方法 public int read(byte buffer) throws IOException /从输入流中读取若干字节到指定缓冲区,返回实从输入流中读取若干字节到指定缓冲区,返回实际读取的字节数际读取的字节数 public void close() throws IOException /关闭流关闭流Java程序设计实用教程(第4版)2. OutputStream抽象字节输出抽象字节输出流类流类public abstract class OutputStream extends Object implements Closeable,
7、Flushable public abstract void write(int b) throws IOException; /写入写入1个字节,抽象方法个字节,抽象方法 public void write(byte buffer) throws IOException /将字节数组写入字节流将字节数组写入字节流 public void flush() throws IOException/立即传输立即传输 public void close() throws IOException /关闭流关闭流Java程序设计实用教程(第4版)8.2.2 文件字节流文件字节流1.FileInputSre
8、am文件字节输入流类文件字节输入流类public class FileInputStream extends InputStream public FileInputStream(String filename) throws FileNotFoundException public FileInputStream(File file) throws FileNotFoundException Java程序设计实用教程(第4版)2. FileOutputStream文件字节文件字节输出流类输出流类public class FileOutputStream extends OutputStrea
9、m public FileOutputStream(String filename) throws FileNotFoundException public FileOutputStream(File file) throws FileNotFoundException public FileOutputStream(String filename, boolean append) throws FileNotFoundExceptionJava程序设计实用教程(第4版)【例例8.1】 理解字节流。理解字节流。【思考题思考题8-2】向字节流写入向字节流写入1字节字节-256和和256,再,再各
10、读取各读取1字节,值为多少?为什么?字节,值为多少?为什么?【答答】0,因为,因为-256 (11 00000000) ; 0,256 (001 00000000) 从文件字节流中读写从文件字节流中读写1个字节个字节Java程序设计实用教程(第4版)(2) 从字节流中读写从字节流中读写4个字节作为个字节作为1个个int整数整数Java程序设计实用教程(第4版)(3) 文件复制操作文件复制操作实现下面实现下面copyFile()方法,完成两个文件的方法,完成两个文件的复制,以字节为单位进行读写操作。复制,以字节为单位进行读写操作。public void copyFile(String fileN
11、ameIn, String fileNameOut);Java程序设计实用教程(第4版)图图8.2 各种字节输入各种字节输入/输出流的读输出流的读/写方法写方法 FileOutputStream fout = new FileOutputStream(filename);DataOutputStream dout = new DataOutputStream(fout);/以文件字节流作为数据源以文件字节流作为数据源for (int i=0; ivalues.length; i+)dout.writeInt(valuesi); /向字节输出流写入一个int整数,4个字节dout.close()
12、; /先关闭数据流fout.close(); /再关闭文件流Java程序设计实用教程(第4版)图图8.3 使用流类和文件类出现使用流类和文件类出现异常类的层次结构异常类的层次结构Java程序设计实用教程(第4版)8.3 字符输入字符输入/输出流类输出流类n8.3.1 抽象字符流抽象字符流n8.3.2 字节字节/字符转换流字符转换流 n8.3.3 文件字符流文件字符流n8.3.4 缓冲字符流缓冲字符流n8.3.5 格式化字符输出流格式化字符输出流 n8.3.6 Java标准输入标准输入/输出输出Java程序设计实用教程(第4版)8.3.1 抽象字符流抽象字符流1.Reader抽象字符输入流类抽象
13、字符输入流类public abstract class Reader extends Object implements Readable, Closeable public int read() throws IOException public int read(char cbuffer) throws IOException public abstract void close() throws IOException;Java程序设计实用教程(第4版)2. Writer抽象字符输出流类抽象字符输出流类public abstract class Writer implements App
14、endable, Closeable, Flushable public void write(int c) throws IOException public void write(char cbuffer) throws IOException public void write(String str) throws IOException /将字符串写入输出流将字符串写入输出流 public abstract void close() throws IOException Java程序设计实用教程(第4版)图图8.10 各种字符输入各种字符输入/输出流的输出流的读读/写方法写方法 Jav
15、a程序设计实用教程(第4版)8.3.2 字节字节/字符转换流字符转换流 1.InputStreamReader字节输入流转换成字符输入流类字节输入流转换成字符输入流类public class InputStreamReader extends Reader public InputStreamReader(InputStream in) /in指定字节输入流作为数据源,采用默认字符集指定字节输入流作为数据源,采用默认字符集 public InputStreamReader(InputStream in, String charsetName) /指定字符集名称指定字符集名称 throws Un
16、supportedEncodingException /不支持不支持charsetName字符集,抛出异常字符集,抛出异常 public String getEncoding() /返回字符集名称字符串返回字符集名称字符串Java程序设计实用教程(第4版)2.字节输出流转换成字符输出流字节输出流转换成字符输出流OutputStreamWriterpublic class OutputStreamWriter extends Writer public OutputStreamWriter(OutputStream out) /指定字节输出流作为数据源,默认字符集指定字节输出流作为数据源,默认字
17、符集 public OutputStreamWriter(OutputStream out, Charset charset) /charset指定字符集指定字符集 public String getEncoding() /返回字符集名返回字符集名Java程序设计实用教程(第4版)8.3.3 文件字符流文件字符流1.FileReader文件字符输入流类文件字符输入流类public class FileReader extends InputStreamReader public FileReader(String fileName) throws FileNotFoundException p
18、ublic FileReader(File file) throws FileNotFoundExceptionJava程序设计实用教程(第4版)2. FileWriter文件字符输出流类文件字符输出流类public class FileWriter extends OutputStreamWriter public FileWriter(String fileName) throws IOException public FileWriter(String fileName, boolean append) throws IOException public FileWriter(File
19、file) throws IOException public FileWriter(File file, boolean append) throws IOException Java程序设计实用教程(第4版)8.3.4 缓冲字符流缓冲字符流1.BufferedReader字符缓冲输入流类字符缓冲输入流类public class BufferedReader extends Reader public BufferedReader(Reader reader) public String readLine() throws IOException /读取一行字符串,输入流结束时返回读取一行字
20、符串,输入流结束时返回null2.BufferedWriter字符缓冲输出流类字符缓冲输出流类public class BufferedWriter extends Writer public BufferedWriter(Writer writer) public void newLine() throws IOException /写入换行符写入换行符Java程序设计实用教程(第4版)8.3.6 Java标准输入标准输入/输出输出1.标准输入标准输入/输出常量输出常量public final class System extends Object public final static I
21、nputStream in /标准输入常量标准输入常量 public final static PrintStream out /标准输出常量标准输出常量 public final static PrintStream err /标准错误输出常量标准错误输出常量Java程序设计实用教程(第4版)PrintStream格式化字节输出流类格式化字节输出流类public class PrintStream extends FilterOutputStream public void print(boolean b) public void print(char c) public void prin
22、t(long l) public void print(int i) public void print(float f) public void print(double d) public void print(String s) public void print(Object obj) public void println()Java程序设计实用教程(第4版)【例例8.6】标准输入问题讨论。标准输入问题讨论。1.System.in.read()按字节读取字符,存在按字节读取字符,存在问题问题 2.使用使用String实现实现GBK编码字符串与编码字符串与Unicode编码字符串的双向
23、转换编码字符串的双向转换 3.使用字节使用字节/字符转换流字符转换流 Java程序设计实用教程(第4版)8.4 文件操作文件操作n8.4.1 文件类及其过滤器类文件类及其过滤器类n8.4.2 文件对话框组件文件对话框组件n8.4.3 随机存取文件类随机存取文件类Java程序设计实用教程(第4版)8.4.1 文件类及其过滤器类文件类及其过滤器类1.构造文件和目录对象构造文件和目录对象public class File extends Object implements Serializable, Comparable public File(String pathname) public Fil
24、e(String parent, String child) public File(File parent, String child)File file = new File(myfile.txt); File dir = new File(“.”,“”); /目录文件,当前目录目录文件,当前目录 File dir = new File(C:,); Java程序设计实用教程(第4版)2. File类提供的方法类提供的方法(1) 访问文件对象方法访问文件对象方法String getName()/返回文件名,不包含路径名返回文件名,不包含路径名String getPath()/返回相对路径名,
25、包含文件名返回相对路径名,包含文件名String getAbsolutePath() /返回绝对路径名,包含文件名返回绝对路径名,包含文件名String getParent() /返回父文件对象的路径名返回父文件对象的路径名File getParentFile() /返回父文件对象返回父文件对象Java程序设计实用教程(第4版)(2)获得或设置文件属性获得或设置文件属性long length() /返回文件的字节长度返回文件的字节长度long lastModified() /返回文件的最后修改时间返回文件的最后修改时间boolean exists() /判断当前文件或目录是否存在判断当前文件或
26、目录是否存在boolean isFile() /判断当前文件对象是否为文件判断当前文件对象是否为文件boolean isDirectory() /判断文件对象是否为目录判断文件对象是否为目录boolean setReadOnly()/设置文件属性为只读设置文件属性为只读boolean setLastModified(long time) /设置文件的最后修改时间设置文件的最后修改时间Java程序设计实用教程(第4版)(3) 文件操作方法文件操作方法int compareTo(File pathname) /比较两个文件对象的内容比较两个文件对象的内容boolean renameTo(File
27、dest) /文件重命名文件重命名boolean createNewFile() throws IOException /创建新文件创建新文件boolean delete() /删除文件或空目录删除文件或空目录Java程序设计实用教程(第4版)(4) 目录操作方法目录操作方法public boolean mkdir() /创建指定目录,正常建立时返回创建指定目录,正常建立时返回truepublic String list() /返回目录中的所有文件名字符串返回目录中的所有文件名字符串public File listFiles() /返回目录中的所有文件对象返回目录中的所有文件对象Java程序设计实用教程(第4版)3. 文件过滤器接口文件过滤器接口1.FileF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年出租车司机驾驶记录管理与雇佣合同3篇
- 2025年度交通安全宣传交通协管员工作合同模板3篇
- 2024燕窝产品安全检测与质量保障合同
- 2024年水塔施工与设计变更管理合同范本3篇
- 2025年度水利工程建设项目索赔应对策略及合同管理规范3篇
- 2024木材产品出口退税代理服务合同3篇
- 2024年甲公司与乙会计事务所之间关于税务咨询的保密合同
- 2025版附物联网设备销售合同模板3篇
- 2024汽车租赁公司驾驶员职业素养与技能提升合同3篇
- 2024年甲乙双方关于电子智能产品研发与技术服务合同
- 2024年辽宁经济职业技术学院单招职业倾向性测试题库附答案
- 启明计划工信部青年人才
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- 居家服侍老人协议书
- 2024年-(多附件条款版)个人汽车租赁给公司合同电子版
- 建工意外险培训课件
- 三年级必读书目《格林童话》阅读测试题(附答案)
- 人口老龄化社会的挑战与机遇
- 三级(高级)电子商务师理论考试题库含答案
- 社区宣传工作方案及措施
- 安全教育主题班会:防恐怖、防极端、防不法侵害
评论
0/150
提交评论