版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一单元 Java高级技术输入和输出处理回顾与作业点评回顾与作业点评u如下代码运行结果是什么?如下代码运行结果是什么?String s1=new String( bdqn );String s2=s1;String s3= bdqn ;System.out.println(s1=s2);System.out.println(s1=s3);System.out.println(s1.equals(s2);System.out.println(s1.equals(s3);本课任务本课任务u任务任务1 1:实现查看文件属性、创建和删除文件:实现查看文件属性、创建和删除文件u任务任务2 2:复制文件:
2、复制文件u任务任务3 3:按模板文件格式存储宠物信息:按模板文件格式存储宠物信息u任务任务4 4:复制图片:复制图片u任务任务5 5:序列化和反序列化对象信息:序列化和反序列化对象信息u学完本次课程后,你能够:学完本次课程后,你能够:n了解输入输出的概念n使用File类操作文件或目录n了解流的概念及分类n会使用字节流读写文本文件n会使用字符流读写文本文件n会使用字节流读写二进制文件n使用序列化和反序列化保持和恢复对象信息本课目标本课目标Java I/OJava I/O文件文件内存内存键盘键盘程序程序文件文件内存内存控制台控制台u什么是文件?什么是文件?n相关记录或放在一起的数据的集合u文件一般
3、存储在哪里?文件一般存储在哪里?uJavaJava程序如何访问文件属性?程序如何访问文件属性?nJAVA API :java.io.File 类文件文件3-13-1File file = new File( String pathname );File 类类创建创建文件对象文件对象物理文件或目录物理文件或目录操作文件或目录的属性操作文件或目录的属性(路径、权限、日期和时间等(路径、权限、日期和时间等 ) c:test .txt或或c:/test .txt通过文件对象的方法通过文件对象的方法uFileFile类访问文件属性类访问文件属性 文件文件3-23-2uFileFile类的常用方法类的常用
4、方法文件文件3-33-3方法名称方法名称说明说明boolean exists( )判断文件或目录是否存在判断文件或目录是否存在boolean isFile( )判断是否是文件判断是否是文件boolean isDirectory( )判断是否是目录判断是否是目录String getPath( )返回此对象表示的文件的相对路径名返回此对象表示的文件的相对路径名String getAbsolutePath( )返回此对象表示的文件的绝对路径名返回此对象表示的文件的绝对路径名String getName( )返回此对象表示的文件或目录的名称返回此对象表示的文件或目录的名称boolean delete(
5、 )删除此对象指定的文件或目录删除此对象指定的文件或目录boolean createNewFile( )创建名称的空文件,不创建文件夹创建名称的空文件,不创建文件夹long length()返回文件的长度,单位为字节返回文件的长度,单位为字节, 如果文如果文件不存在,则返回件不存在,则返回 0L 演示示例:使用演示示例:使用FileFile类操作文件或目录属性类操作文件或目录属性课堂练习课堂练习u需求说明需求说明n实现查看文件属性、创建和删除文件完成时间:完成时间:15分钟分钟共性问题集中讲解共性问题集中讲解u如何读写文件?如何读写文件?u通过流来读写文件通过流来读写文件n流是一组有序的数据序
6、列n以先进先出方式发送信息的通道流流 3-1 3-1InputStreamOutputStream来自数据源的数据流来自数据源的数据流流向目的地的数据流流向目的地的数据流AECDBF问题问题分析分析u输入输入/ /输出流与数据源输出流与数据源流流 3-2 3-2uJavaJava流的分类流的分类流流3-33-3输入输出流是相对于计算机内存来说的输入输出流是相对于计算机内存来说的字节流是字节流是 8 位通用字节流,字符流是位通用字节流,字符流是 16 位位 Unicode 字符流字符流uInputStreamInputStream类常用方法类常用方法nint read( )nint read(b
7、yte b)nint read(byte b,int off,int len)nvoid close( )nint available():可以从输入流中读取的字节数目u子类子类FileInputStreamFileInputStream常用的构造方法常用的构造方法n FileInputStream(File file)nFileInputStream(String name)FileInputStreamFileInputStream使使用用FileInputStream FileInputStream 读文本文件读文本文件import java.io.IOException;import
8、java.io.FileInputStream;FileInputStream fis= new FileInputStream(c:test.txt);fis.available(); fis.read(); fis.close();实现步骤实现步骤 演示示例:演示示例:使用使用FileInputStream类读取文本文件类读取文本文件uOutputStreamOutputStream类常用方法类常用方法nvoid write(int c)nvoid write(byte buf)nvoid write(byte b,int off,int len)nvoid close()nvoid fl
9、ush():强制把缓冲区的数据写到输出流中u子类子类FileOutputStreamFileOutputStream常用的构造方法常用的构造方法nFileOutputStream (File file)nFileOutputStream(String name)nFileOutputStream(String name,boolean append)FileOutputStreamFileOutputStream1、前两种构造方法在向文件写数据时将覆盖文件中原有的内容、前两种构造方法在向文件写数据时将覆盖文件中原有的内容2、创建、创建FileOutputStream实例时,如果相应的文件并不存
10、在,实例时,如果相应的文件并不存在,则会自动创建一个空的文件则会自动创建一个空的文件注意注意使使用用FileOutputStream FileOutputStream 写写文本文件文本文件import java.io.IOException;import java.io.FileOutputStream; String str =好好学习好好学习Java;byte words = str.getBytes();fos.write(words, 0, words.length); fos.close();u使使用用FileOutputStream FileOutputStream 写写文本文件文
11、本文件的步骤与的步骤与读文件的步骤有何不同?读文件的步骤有何不同?FileOutputStream fos = new FileOutputStream(text.txt);把数据写入文本文件把数据写入文本文件 演示示例:演示示例:使用使用FileOutputStream类向文本文件写数据类向文本文件写数据课堂练习课堂练习u需求说明需求说明n文件“我的青春谁做主.txt”位于D盘根目录下,要求将此文件的内容复制到C:myFilemy Prime.txt中完成时间:完成时间:15分钟分钟共性问题集中讲解共性问题集中讲解常见错误常见错误/ 1、创建输入流对象、创建输入流对象,负责读取负责读取D:我
12、的青春谁做主我的青春谁做主.txt文件文件FileInputStream fis = new FileInputStream(D:我的青春谁做主我的青春谁做主.txt);/2、创建输出流对象,负责将文件内容写入到、创建输出流对象,负责将文件内容写入到C:myFilemy Prime.txt中中FileOutputStream fos = new FileOutputStream(C:myFilemyPrime.txt,true);/ 3、创建中转站数组、创建中转站数组,存放每次读取的内容存放每次读取的内容byte words = new byte1024;/ 4、通过循环实现文件读写、通过循环
13、实现文件读写while(fis.read()!=-1)fis.read(words); /读取文件读取文件fos.write(words, 0, words.length); /写入文件写入文件u格式模板保存在文本文件格式模板保存在文本文件pet.templatepet.template中,内容中,内容如下:如下:n您好!n我的名字是name,我是一只type。n我的主人是master。u其中其中namename、typetype、mastermaster是需要替换的内是需要替换的内容,现在要求按照模板格式保存宠物数据到文本容,现在要求按照模板格式保存宠物数据到文本文件,即把文件,即把name
14、name、typetype、mastermaster替换为具替换为具体的宠物信息,该如何实现呢?体的宠物信息,该如何实现呢?使用字符流读写文件使用字符流读写文件2-12-1问题问题u可以把该问题分解为:可以把该问题分解为:n如何从文件中读取模板?n如何替换模板中的内容为当前宠物信息?n如何将文本保存到文件?使用字符流读写文件使用字符流读写文件2-22-2使用使用Reader接口实现接口实现使用使用String的的replace()方法实现方法实现使用使用Writer接口实现接口实现分析分析使用字符流读写文本更合适使用字符流读写文本更合适uReaderReader类常用方法类常用方法nint r
15、ead( )nint read(char c)nread(char c,int off,int len)nvoid close( )u子类子类InputStreamInputStreamReaderReader常用的构造方法常用的构造方法nInputStreamReader(InputStream in)nInputStreamReader(InputStream in,String charsetName)ReaderReader类类uFileReaderFileReader类是类是InputStreamInputStreamReaderReader的子类的子类nFileReader(Fil
16、e file)nFileReader(String name)u该类只能按照本地平台的字符编码来读取数据,该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型用户不能指定其他的字符编码类型nSystem.out.println(System.getProperty(file.encoding); 获得本地平台的字符编码类型FileReaderFileReader类类u与字节流与字节流FileInputStreamFileInputStream类实现文本文件读取类实现文本文件读取步骤类似步骤类似n引入相关的类引入相关的类limport java.io.Reader;limpo
17、rt java.io.FileReader;lImport java.io.IOExceprion;n创建创建FileReader对象对象lReader fr= new FileReader(D:myDoc简介简介.txt);n读取文本文件的数据读取文本文件的数据lfr.read(); n关闭相关的流对象关闭相关的流对象l fr.close();使用使用FileReaderFileReader读取文件读取文件 演示示例:演示示例:使用使用FileReader读取文本文件读取文本文件u如何提高字符流读取文本文件的效率?如何提高字符流读取文本文件的效率?n使用使用FileReaderFileRea
18、der类与类与BufferedReaderBufferedReader类类BufferedReaderBufferedReader类类问题问题BufferedReader类是类是Reader类的子类类的子类BufferedReader类带有缓冲区类带有缓冲区按行读取内容的按行读取内容的readLine()方法方法uBufferedReaderBufferedReader常用的构造方法常用的构造方法n BufferedReader(Reader in)u子类子类BufferedReaderBufferedReader特有的方法特有的方法n readLine()BufferedReaderBuff
19、eredReader类类使使用用 BufferedReader BufferedReader读文本文件读文本文件import java.io.FileReader;import java.io.BufferedReader;import java.io.IOException;Reader fr=new FileReader(C:myTest.txt ); BufferedReader br=new BufferedReader(fr); br.readLine();br.close();fr.close();实现步骤实现步骤 演示示例:演示示例:使用使用BufferedReader和和Fil
20、eReader读取文本文件读取文本文件u需求说明需求说明n读取模板文件C:pet. template的内容,将其在控制台输出课堂练习课堂练习完成时间:完成时间:10分钟分钟共性问题集中讲解共性问题集中讲解uWriterWriter类常用方法类常用方法nwrite(String str)nwrite(String str,int off,int len)nvoid close()nvoid flush()u子类子类OutputStreamOutputStreamWriterWriter常用的构造方法常用的构造方法nOutputStreamWriter(OutputStream out)nOutp
21、utStreamWriter(OutputStream out,String charsetName)WriterWriter类类uFileWriterFileWriter类是类是OutputStreamOutputStreamWriterWriter的子类的子类nFileWriter (File file)nFileWriter (String name)u该类只能按照本地平台的字符编码来写数据,用该类只能按照本地平台的字符编码来写数据,用户不能指定其他的字符编码类型户不能指定其他的字符编码类型FileWriterFileWriter类类u与字节流与字节流FileOutputStreamFi
22、leOutputStream类实现向文本文件写类实现向文本文件写入数据步骤类似入数据步骤类似n引入相关的类引入相关的类limport java.io.Reader;limport java.io.FileWriter;lImport java.io.IOException;n创建创建FileReader对象对象lWriter fw= new FileWriter(D:myDoc简介简介.txt);n写文本文件写文本文件lfw.write(); n关闭相关的流对象关闭相关的流对象l fw.close();使用使用FileWriterFileWriter写文件写文件 演示示例:演示示例:使用使用F
23、ileWriter类向文本文件写数据类向文本文件写数据u如何提高字符流写文本文件的效率?如何提高字符流写文本文件的效率?n使用使用FileWriterFileWriter类与类与BufferedWriterBufferedWriter类类uBufferedWriterBufferedWriter常用的构造方法常用的构造方法n BufferedWriter(Writer out)BufferedWriterBufferedWriter类类问题问题BufferedWriter类是类是Writer类的子类类的子类BufferedWriter类带有缓冲区类带有缓冲区使用使用 BufferedWrite
24、r BufferedWriter 写写文件文件实现步骤实现步骤import java.io.FileWriter ;import java.io.BufferedWriter ;import java.io.IOException;FileWriter fw=new FileWriter(C:myTest.txt); BufferedWriter bw=new BufferedWriter(fw);bw.write(hello);bw.flush(); fw.close(); 演示示例:演示示例:使用使用BufferedWriter和和FileWriter类写文本文件类写文本文件u需求说明需求
25、说明n按照刚才读取的模板文件C:pet. template的模板格式保存宠物数据到文本文件,即把name、type、master替换为具体的宠物信息,将替换后的内容写入到C:myDocpet.txt中课堂练习课堂练习完成时间:完成时间:10分钟分钟共性问题集中讲解共性问题集中讲解u读取包含中文的文本文件时,可能出现中文乱码,读取包含中文的文本文件时,可能出现中文乱码,怎么办?怎么办?解决读取时中文乱码解决读取时中文乱码问题问题 演示示例:解决中文乱码演示示例:解决中文乱码FileReader fr = new FileReader(c:myDochello.txt);BufferedReade
26、r br=new BufferedReader(fr); FileInputStream fis=new FileInputStream(c:myDochello.txt);/使用使用InputStreamReader并设置编码格式并设置编码格式InputStreamReader fr=new InputStreamReader(fis,UTF-8); BufferedReader br=new BufferedReader(fr); uDataInputStreamDataInputStream类类nFileInputStream的子类n与FileInputStream类结合使用读取二进制文
27、件uDataOutputStreamDataOutputStream类类nFileOutputStream的子类n与FileOutputStream类结合使用写二进制文件读写二进制文件读写二进制文件使用使用 DataInputStream DataInputStream 读二进制文件读二进制文件实现步骤实现步骤import java.io.FileInputStream; import java.io.DataInputStream;FileInputStream fis=new FileInputStream(C:HelloWorld.class);DataInputStream dis=n
28、ew DataInputStream(fis);dis.read ();dis.close();与字节流与字节流FileInputStream类实现文本文件读取类实现文本文件读取步骤极其相似步骤极其相似使用使用 DataOutputStreamDataOutputStream写二进制文件写二进制文件实现步骤实现步骤import java.io.FileOutputStream; import java.io.DataOutputStream;FileOutputStream outFile=new FileOutputStream(C:temp.class);DataOutputStream out=new DataOutputStream(outFile);out.write();out.close();与字节流与字节流FileOutputStream类实现文本文件读类实现文本文件读取步骤极其相似取步骤极其相似 演示示例:演示示例:二进制文件的读写二进制文件的读写课堂练习课堂练习u需求说明需求说明n图片star.jpg位于C盘根目录下,要求将此图片复制到D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南永州市潇湘兴业集团公司选聘急需紧缺专业人才25人笔试参考题库附带答案详解
- 2025湖北十堰融资担保集团有限公司招聘5人笔试参考题库附带答案详解
- 2025浙江宁波市象山县水利建筑设计院有限公司第二期招聘拟录用人员笔试参考题库附带答案详解
- 2025江西吉安市吉水县城控人力资源服务有限公司面向社会招募2名见习生笔试参考题库附带答案详解
- 浙高建公司景文高速公路指挥部劳务派遣用工招聘4人笔试历年典型考点题库附带答案详解
- 黑龙江省2025年【黑龙江人才周】齐齐哈尔市公立医院合同制人员招聘211人笔试历年参考题库典型考点附带答案详解
- 福建省2025福建漳州九湖镇人民政府公开招聘劳务派遣人员2人笔试历年参考题库典型考点附带答案详解
- 淄博市2025年山东淄博高新区“火炬青年人才”引进(20人)笔试历年参考题库典型考点附带答案详解
- 柳州市2025广西柳州市残疾人劳动就业服务中心招聘残疾人专职委员1人笔试历年参考题库典型考点附带答案详解
- 建德市2025年浙江事业单位招聘杭州建德市部分乡镇招聘消防辅助人员7人笔试历年参考题库典型考点附带答案详解
- 2025年中国南水北调集团江汉水网建设开发有限公司公开招聘15人笔试参考题库附带答案详解
- 2026年及未来5年中国蔬菜的净菜加工行业发展监测及投资战略规划建议报告
- (2026年)咯血的护理课件
- 社区三资工作方案
- CT增强扫描技术规范
- 2025湖北汉江水利水电(集团)有限责任公司水电公司面向社会招聘员工拟录用人选笔试历年参考题库附带答案详解
- 雨课堂学堂在线学堂云《家庭教育学(青岛大学 )》单元测试考核答案
- NCCN急性淋巴细胞白血病临床实践指南解读(2025版)
- 2025年高考天津卷物理真题(解析版)
- 2025届全国高考语文真题试卷(天津卷)附答案
- 心静脉导管、PICC、CVC管道维护考试题(含答案)
评论
0/150
提交评论