Java程序设计实训教程 作者 978-7-302-27535-0 第8章 文件和流 第8章 文件和流_第1页
Java程序设计实训教程 作者 978-7-302-27535-0 第8章 文件和流 第8章 文件和流_第2页
Java程序设计实训教程 作者 978-7-302-27535-0 第8章 文件和流 第8章 文件和流_第3页
Java程序设计实训教程 作者 978-7-302-27535-0 第8章 文件和流 第8章 文件和流_第4页
Java程序设计实训教程 作者 978-7-302-27535-0 第8章 文件和流 第8章 文件和流_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章 文件和流在线教务辅导网:http:/教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187 或者直接输入下面地址:本章学习目标掌握文件和流的概念掌握字节输入流和输出流的使用方法掌握字符输入流和输出流的使用方法掌握对文件操作的基本手段任务1:了解流概念【任务内容】了解流概念【能力目标】掌握数据流的概念和分类了解字节流和字符流的基本概念8.1基本数据流 数据流即是一个有序的数据序列,在其一端写入数据,而在另一端读出。如果是程序从数据源读入数据,则称其为输入流;如果是程序向目的地写数据,则称其为输出流, Java中根据流操作的种类可分为:字节流和字符流Java流类体系结构1 Ja

2、va流类体系结构2Java流类体系结构3 Java流类体系结构4 输入输出流的分类任务2:理解标准输入/输出流 【任务内容】编写程序,尝试使用标准输入/输出流从键盘读入一个字符【能力目标】掌握标准输入/输出流的基本使用方法了解输入/输出流的基本概念【任务分析】本程序既有输入也有输出,因此应先使用标准输入流读取内容,再使用标准输出流进行显示。8.1基本数据流/SystemIn .javaimport java.io.*;public class SystemInpublic static void main(String args)char ch=u0000; /声明一个字符类型的变量,并赋初值

3、为空System.out.print(请输入一个字符:); /在命令行终端提示输入一个字符try /使用标准输入流来从键盘缓冲区中得到一个字符ch=(char)System.in.read();catch(IOException e)System.out.println(读取字符错误。);System.out.println(您输入的字符是:+ch); /在命令行终端打印出所得到的字符 Java语言提供了三种标准输入/输出流:System.in:标准输入流,默认从键盘读取数据。System.out:标准输出流,默认向屏幕输出数据。System.err:标准错误流,默认向屏幕输出程序异常信息。任

4、务3:了解字节输入/输出流中常用方法【任务内容】了解输入/输出流中常用方法【能力目标】了解输入/输出流中常用方法定义和功能学会使用常用方法能有意识地使用常用方法8.1基本数据流输入流(InputStream抽象类)的主要方法 :方 法 定 义功 能read()抽象方法从流中读取一个字节数,所有其他的带参数的read方法都不是抽象方法,它们都调用read()方法read(byte b)读多个字节到数组中,每次调用该方法,就从流中读取相应数据到缓冲区,同时返回读到的字节数目,如果读完则返回1read(byte b,int off,int len)从输入流中读取长度为len的数据,写入数据b中从of

5、f开始并返回读取的字节数,如果读完则返回1skip(long n)跳过流中若干字节数available()返回流中不阻塞情况下还可用字节数(此方法通常需要子类覆盖,如果子类不覆盖,默认返回字节总为0)mark()在流中标记一个位置,可调用reset重新定向到此位置,进而再读reset()返回标记过的位置markSupported()是否支持标记和复位操作,如果子类支持,则返回true,否则返回falseclose()关闭流并释放相关的系统资源输出流(OutputStream抽象类)的主要方法 方 法 定 义功 能write(int b) 抽象类将一个整数输出到流中(只输出低八位字符)write

6、(byte b)将b.length个字节数组中的数据输出到流中write(byte b,int off,int len)将数组b中从off指定的位置开始,长度为len的数据输出到流中flush()刷空输出流,并将缓冲区中的数据强制送出close()关闭流并释放相关的系统资源任务4:了解数据流(DataInputStream/DataOutputStream)的常用方法 【任务内容】了解数据流的常用方法【能力目标】了解数据流中常用方法定义和功能学会使用常用方法能有意识地使用常用方法8.1基本数据流数据流主要包括DataInputStream类(数据输入流) 和DataOutputStream类(

7、数据输出流) 两类,它们以统一通用的形式读入和写出int、long、boolean等基本数据类型。数据输入流的主要方法 如下:方 法 定 义功 能read(byte)将当前数据输入流byte.length个字节数据读到一个字节数组中read(byte b,int off,int len)从输入流中读取长度为len的数据,写入数据b中从off开始并返回读取的字节数,如果读完则返回1readBoolean()从当前数据输入流中读取一个boolean值readByte()从当前数据输入流中读取一个有符号的8位数readFully(byte)从当前数据输入流中读取b.length个字节到该字节数组re

8、adUTF(DataInput)从指定的数据输入流中读取一个字符串skipBytes(int)准确地跳过基本输入流中的n字节readLine()从当前数据输入流中读取文本的下一行数据输出流的主要方法 如下:方 法 定 义功 能flush()刷新当前数据输出流size()返回写入当前数据输出流的字节数write(byte b,int off,int len)将数组b中从off指定的位置开始,长度为len的数据输出到流中write(int)将指定字节写入基本输出流writeUTF(String)使用独立于机器的UTF-8编码格式,将一个字串写入该基本输出流案例: TestDataStream.ja

9、va任务5:认识字符流(Reader/Writer)的概念及其作用 【任务内容】了解字符流的概念及其作用【能力目标】了解字符流的概念及其作用了解Java语言对字符编码转换问题的解决方法8.2 字符输入/输出流在处理字符流时,最主要的问题是进行字符编码转换。Java语言采用Unicode字符编码。对于每一个字符,Java虚拟机会为其分配两个字节的内存,而在文本文件中,字符有可能采用其他类型的编码,如GBK和UTF-8字符编码等。因此,Java中的Reader和Writer类会在本地平台的字符编码和Unicode字符编码之间进行编码转换 ,示例见:SystemIn.javaimport java.

10、io.*;public class SystemInpublic static void main(String args) throws IOExceptionchar ch=u0000; /声明一个字符类型的变量,并赋初值为空System.out.print(请输入一个字符:); /在命令行终端提示输入一个字符try /使用标准输入流来从键盘缓冲区中得到一个字符InputStreamReader isr=new InputStreamReader(System.in);ch= (char)isr.read();/ch=(char)System.in.read();catch(IOExcep

11、tion e)System.out.println(读取字符错误。);System.out.println(您输入的字符是:+ch); /在命令行终端打印出所得到的字符任务6:字符流(InputStreamReader/OutputStreamWriter)的简单使用 【任务内容】编写程序,使用字符流进行读写操作【能力目标】掌握字符流的基本使用方法【任务分析】字符流可以使用字符来进行读写操作,相比字节流而言更加方便运用。 8.2 字符输入/输出流/ File11.javaimport java.io.*;public class File11 public static void main(S

12、tring args) throws Exception FileOutputStream fos=new FileOutputStream(e:test.txt); /创建文件输出流 OutputStreamWriter osw=new OutputStreamWriter(fos,UTF-8); /按照UTF-8编码格式创建字符输出流 osw.write(中); /向文件中写入字符 osw.write(文); osw.close(); FileInputStream fis=new FileInputStream(e:test.txt); /创建文件输入流 InputStreamReade

13、r isr=new InputStreamReader(fis,UTF-8); /按照UTF-8字符编码格式创建字符输入流 System.out.println(char)isr.read(); /从字符输入流中读取字符 System.out.println(char)isr.read(); isr.close(); 任务7:缓冲字符流(BufferedWriter/BufferedReader)的使用【任务内容】编写程序,体验缓冲字符流的使用方法及特点【能力目标】掌握缓冲字符流的使用方法【任务分析】之前所学习的字符流可以对单个字符进行操作,如果想对字符串进行操作就必须使用带缓冲的字符流来完成

14、,因此,缓冲字符流就是在字符流基础上发展出来的一种方便应用的流。案例:File12 .java File13 .java8.2 字符输入/输出流任务8:过滤流(FilterStream)的使用【任务内容】编写程序,了解过滤流的使用方法【能力目标】了解过滤流的使用方法【任务分析】过滤流是在字节流的基础上,允许其使用适当方式进行读写数据的操作,因此,有必要先建立字节流对象。案例: File9 .java File10 .java8.3 数据流高级应用任务9:对象序列化(ObjectInputStream/ObjectOutputStream)【任务内容】通过编写程序,体验对象序列化的意义及使用方法

15、【能力目标】掌握对象序列化的使用方法了解对象序列化的使用意义【任务分析】对象序列化需要使用一个对象序列化接口才能实现其功能,并能够使对象在网络中进行传递。案例:logon .java8.3 数据流高级应用任务10:数据流拼接【任务内容】了解数据流拼接【能力目标】了解文件读写某些数据类型的一种装配方式学会装配写法能有意识地使用装配写法8.3 数据流高级应用任务11:文件创建及使用【任务内容】编写一个程序,用来在指定位置创建一个文件,并对文件进行操作【能力目标】掌握使用文件类来创建文件的方法掌握文件操作的简单方法【任务分析】文件类中提供了相应的函数来对文件进行操作,用户只需对其进行合理的使用即可。

16、8.4 文件/对Test.txt及其上一级目录的File类对象进行操作import java.io.*;public class FileDemo01public static void main(String args) File f=new File(parentfileTest.txt); File f1=new File(newfileTest.txt); trySystem.out.println(上一级目录是:+f.getParent(); System.out.println(文件名是:+f.getName(); System.out.println(路径是:+f1.getPat

17、h(); System.out.println(绝对路径是:+f1.getAbsolutePath();catch(Exception e)e.printStackTrace(); /File常用方法示例:class TestFileMethodspublic static void main(String args)File f=new File(test1.txt); /创建文件对象System.out.println(exist? +f.exists();System.out.println(name: +f.getName();System.out.println(path: + f.

18、getPath();System.out.println(absolutepath: +f.getAbsolutePath();System.out.println(parent+f.getParent();System.out.println(is a file? +f.isFile();System.out.println(is a directory? +f.isDirectory();System.out.println(length: +f.length();System.out.println(can read? + f.canRead();System.out.println(can write? + f.canWrite();System.out.println(last modified: + f.lastModified();任务12:文件的写入【任务内容】编写程序,对文件进行写入操作【能力目标】掌握文件写入操作【任务分析】对文件的操作应该遵循打开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论