第七章 基于文件的员工信息读取和保存_第1页
第七章 基于文件的员工信息读取和保存_第2页
第七章 基于文件的员工信息读取和保存_第3页
第七章 基于文件的员工信息读取和保存_第4页
第七章 基于文件的员工信息读取和保存_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

基于文件的员工信息读取和保存,任务预览,在前面,利用图形界面输入员工的信息之后,在关闭程序之后,员工的信息就全部丢失掉了,我们希望能够在输入之后,将员工的信息以文件的形式保存起来。并且在下次运行程序的时候,能够将上次保存的数据载入到表格中。,文件的读写和管理,Java中文件的创建在Java中,目录被视作一个特殊的文件,使用File类来统一表示目录和文件,在File类中,可以调用相应的方法来判断是文件还是目录。File常用的构造方法有File(Fileparent,Stringchild);/通过parent抽象路径和child路径名创建一个新的File对象File(StringpathName);/通过指定的路径名来创建一个File对象File(Stringparent,Stringchild);/通过parent路径名字符串和child路径名创建一个新的File对象,文件的读写和管理,File类中还定义了很多访问属性的方法,常用访问属性的方法有publicbooleancanRead();/判断文件是否可读publicbooleancanWrite();/判断文件是否可写publicbooleanexists();/判断文件是否存在publicbooleanisDirectory();/判断是否为目录publicbooleanisFile();/判断是否为文件publicbooleanisHidden();/判断是否问隐藏文件publiclonglength();/返回文件长度publicStringgetName();/返回文件名publicStringgetPath();/返回文件路径publicStringgetAbsolutePath();/返回文件绝对路径,文件的读写和管理,Java中文件的操作。File类中除了提供访问文件属性的方法外,还提供了许多操作文件的方法,常用的方法有一下几种。publicbooleancreateNewFile();/不存在时建立此文件对象的空文件publicbooleandelete();/删除文件,如果是目录,则必须为空才可以上删除publicbooleanmkdir();/创建此抽象路径名指定的目录publicbooleanmkdirs();/创建抽象路径名指定的目录,包括所有不存在的父目录publicStringlist();/返回此目录中所有文件和目录的名字数组publicFilelistFiles();/返回此目录中所有文件和目录的File实例数组,Java输入/输出流,流是通过Java的输入输出系统与物理设备进行连接并传输数据。连接何种物理设备这与使用的流的种类有关,比如,文件流会访问本地硬盘,而网络流则会访问网络上其他计算机的资源。Java中有关流的类都在Java.io包中。Java中定义了两种类型的输入输出流:字节流和字符流。字节流和字符流都有自己的好处。一般我们在处理一些二进制文件的时候,比如音频、视频、图像等文件使用字节流比较好,在处理一些文本文档等字符文件的时候,使用字符流比较好。,字节流,Java文件流专门操作数据源或者目标源是文件的流,这也是Java流中的最重要的一种流。他们按照传输的单位分为字节文件流和字符文件流,分别是FileInpitStream、FileOutputStream和FileReader、FileWriter。常用的字节流类的层次结构,字节流,抽象类InputStream常用的方法有以下几种voidclose();/关闭此输入流并释放与该流关联的所有系统资源intread();/从输入流读取下一个数据字节intread(byteb);/从输入流读取一定的数据字节,并存在数组b中intread(byteb,intoff,intlen);/将输入流中最多len个数据字节读入字节数组抽象类OutputStream类的常用的方法有voidclose();/关闭此输出流并释放与该流关联的所有系统资源voidflush();/刷新此输出流并强制写出所有缓冲区的输出字节voidwrite(byteb);/将数组b中的数据全部写入输出流中abstractvoidwrite(b);/将指定字节写入此输出流中voidwrite(byteb,intoff,intlen);/将指定的字节数组从偏移量off开始的len个字节写入此输出流,FileInputStream类和FileOutputStream类,FileInputStream和FileOutputStream类用于从文件读取字节和向文件写入字节,比较适合于二进制文件的读写。他们的所有方法都是从InputStream和OutputStream中继承的,没有定义自己的新的方法。FileInputStream类的常用的构造方法有一下几种FileInputStream(Filefile);/通过一个打开的File对象来创建一个FileInputStreamFileInputStream(StringfileName);/通过实际的文件路径来创建一个FileInputStream,FileInputStream类和FileOutputStream类,FileOutputStream类的常用的构造方法有FileOutputStream(Filefile);/通过一个打开的File对象来创建一个FileOutputStreamFileOutputStream(StringfileName);/通过实际的文件路径来创建一个FileOutputStreamFileOutputStream(FilefileName,booleanappend);/*通过一个打开的File对象来创建一个FileOutputStream,append用来表示是否把数据追加到文件末尾*/FileOutputStream(StringfileName,booleanappend);/*通过实际的文件路径来创建一个FileOutputStream,append用来表示是否把数据追加到文件末尾*/,BufferedInputStream类和BufferedOutputStream类,BufferedInputStream和BufferedOutputStream是缓冲字节流,它们通过减少读写IO设备的次数来加快输入输出速度。它们在读取数据的时候,会先将数据成块读取并放置在内存大的缓冲区中,每次读取数据时,我们都是从缓冲区读取。,BufferedInputStream类和BufferedOutputStream类,BufferedInputStream类的构造方法有以下几种BufferedInputStream(InputStreamin);/创建BufferedInputStream并保存其参数,即输入流in,以便将来使用BufferedInputStream(InputStreamin,intsize);/创建具有指定缓冲区大小的BufferedInputStream,并保存其参数,即输入流in,以便将来使用BufferedOutputStream类的构造方法有以下几种BufferedOutputStream(OutputStreamout);/创建一个新的缓冲区输出流,以将数据写入指定的基础输出流outBufferedOutputStream(OutputStreamout);/创建一个新的缓冲区输出流,以将具有指定缓冲区大小的数据写入到指定的基础输出流,数据流类,FileInputStream和FileOutputStream只能读写字节,如果我们需要读写int、double或者字符串类型的数据就需要使用数据流进行包装。数据流不能独立读写,必须对字节流进行包装后才能读写数据。可以使用过滤器类实现类DataInputStream和DataOutputStream类。数据流也是一种字节流。,数据流类,DataInputStream构造方法和常用的方法如下DataInputStream(InputStreamin);/根据字节流创建数据流对象booleanreadBoolean();/从输入流读取一个布尔值booleanreadByte();/从输入流读取一个byte值charreadChar();/从输入流读取一个char值doublereadDouble();/从输入流读取一个double值floatreadFloat();/从输入流读取一个float值intreadInt();/从输入流读取一个int值StringreadUTF();/从输入流读取一个字符串DataOutputStream构造方法及其常用方法如下writeInt(intv);/将一个int值以4-byte的形式写入到输出流中,先写入高字节writeLong(longv);/将一个long值以8-byte的形式写入到输出流中,先写入高字节writeShort(intv);/将一个short值以2-byte的形式写入到输出流中,先写入高字节writeUTF(Stringstr);/将一个与机器无关方式使用UTF-8编码形式将一个字符串写入到基础输出流中,字符流,字符流的基类是抽象类Reader和Writer类。Reader负责输入,Writer负责输出。,字符流,抽象类Reader常用方法有以下几种voidclose();/关闭该流intread();/读取单个字符intread(charbuf);/读取多个字符到数字组bufintread(charbuf,intoff,intlen);/将字符读入到数组buf的某一部分抽象类Writer常用的方法有以下几种Writerappend(charc);/将指定的字符追加到此Writer,方法返回一个Writer对象voidclose();/关闭此流,需要先刷新voidflush();/刷新流voidwrite(charbuf);/写入字符数组voidwrite(charbuf,intoff,intlen);/写入字符数组的一部分voidwrite(Stringstr);/写入字符串,FileReader类和FileWriter类,FileReader和FileWriter是义字符为基本操作单位的文件流。一般对文本的读写操作使用FileReader和FileWriter比较合适。FileReader类常用的构造方法有FileReader(StringfileName);FileReader(Filefile);FileWriter类常用的构造方法有FileWriter(Filefile);FileWriter(StringfileName);FileWriter(Filefile,booleanappend);FileWriter(StringfileName,booleanappend);,BufferedReader类和BufferedWriter类,BufferedReader类和BufferedWriter类与前面介绍的BufferedInputStream和BufferedOutputStream的作用一样,通过内存的缓冲区来减少IO的读写次数,以提高输入和输出的速度。BufferedReader和BufferedWriter是针对字符的缓冲输入输出流。它们也不能独立的读写数据,也必须包装字符流才能进行读写操作。,BufferedReader类和BufferedWriter类,BufferedReader类的构造方法及常用的方法有BufferedReader(Readerin);/创建一个使用默认大小的输入缓冲区的缓冲字符输入流BufferedReader(Readerin,intsize);/创建一个指定大小的输入缓冲区的缓冲字符输入流StringreadLine();/读取一个文本行BufferedWriter的构造方法及常用的方法有BufferedWriter(Writerout);/创建一个使用默认大小的输出缓冲区的缓冲字符输出流BufferedWriter(Writerout,intsize);/创建一个指定大小的输出缓冲区的缓冲字符输出流newLine();/写入一个分行符,转换流,有时候我们需要将字节流转换为字符流,并且将字符流中读到的数据按照指定的字符编码换成字符输入显示或者将要写入的数据按照指定的字符编码转换成字节输出存储。这时候,我们就需要用到转换流。JavaSEAPI提供了两个转换流:InputStreamReader和OutputStreamWriter。,转换流,InputStreamReader常用的构造方法及常用的成员方法InputStreamReader(InputStreamin);/创建一个使用默认字符编码的InputStreamReaderInputStreamReader(InputStreamin,StringcharsetName);/创建一个指定字符集编码的InputStreamReaderStringgetEncoding();/返回此流使

温馨提示

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

评论

0/150

提交评论