Java程序设计第六章_第1页
Java程序设计第六章_第2页
Java程序设计第六章_第3页
Java程序设计第六章_第4页
Java程序设计第六章_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

目录第一章Java与程序逻辑第二章面向对象程序设计基础第三章面向对象基本特性第四章常用对象使用第五章异常处理第六章I/O操作第七章多线程编程第八章Java的GUI可视界面编程第六章I/O操作21任务6.1文件管理任务6.2流操作文件任务6.3

对象的存储3任务6.1文件管理4情境描述123问题分析解决方案知识总结5应用实践6.1.1情境描述针对工资管理中的数据,只是临时存储在内存中,在遇到断电或者重启系统之后将不再存在。要实现Windows下的数据持久,需要利用Java完成以下任务:1)利用Java创建文件夹的操作2)利用Java进行文件创建操作3)实现文本的写入操作4)实现文本的读取操作6.1.2问题分析通过Java语言去完成文件夹及文件的创建任务,需要借助java.io.File类来实现。File类提供文件的访问及文件夹的创建操作,利用它能够顺利完成任务,同样还可以利用java.io下的RandomAccessFile类来实现对文件的随机操作。6.1.3解决方案

1、打开Eclipse开发环境。2、新建“com.esms.file”包,用于文件操作类组织存储。3、新建文件FileHelper.java,实现底层文件及文件夹的基本操作。4、利用File类完善文件及文件夹基本操作。5、在FileHelper类中创建Main函数,测试功能是否正确。6、运行检查在C盘下是否存在文件夹及文件。7、在FileHelper类中扩展文件写入方法write。8、在FileHelper中添加read方法。9、测试文件读写是否正确。6.1.4知识总结1.文件计算机在存储数据的时候,将所有的数据(包括字符)都以字节为单位进行存储。所谓文件,抽象地来讲,任何数据的集合都可以被看作文件。我们通常所谈的“文件”多是指磁盘存储系统上所存储的数据(文件)。我们常常打开一个文件进行读写操作,而读写操作通常与输入输出相关,即从输入中读数据,向输出中写数据。6.1.4知识总结2.File类的使用(1)构造方法(2)常用方法①文件信息②文件检查③文件操作④目录操作方法用途File(Stringpathname)用给定路径名字符串创建一个新File实例File(Stringparent,Stringchild)根据parent父路径名字符串和子child路径名字符串,创建一个新File实例File(Fileparent,Stringchild)根据parent父File类和child子路径名字符串,创建一个新File实例File(URIuri)用给定的file:URI创建一个新的File实例6.1.4知识总结2.File类的使用(3)File类的常用常量字段名称字段说明publicstaticfinalStringseparator与系统有关的默认名称分隔符。此字段被初始化为包含系统属性file.separator的值的第一个字符。在UNIX系统上,此字段的值为“/”;在MicrosoftWindows系统上,它为“\\”publicstaticfinalStringpathSeparator与系统有关的默认路径分隔符字符。此字段被初始化为包含系统属性path.separator的值的第一个字符。此字符用于按照路径列表给出的文件顺序分隔文件名。在UNIX系统上,此字段为“:”;在MicrosoftWindows系统上,它为“;”6.1.4知识总结3.RandomAccessFile类的使用RanddomAccessFile的构造方法:publicRanddomAccessFile(Filefile,Stringmode)throwsFileNotFoundException(1)使用RandomAccessFile进行写入操作利用随机访问提供的直接写入方法,向文件中直接输出一个基本数据类型数据。(2)使用RandomAccessFile进行读取操作在RandomAccessFile操作的时候,读取的方法都是从DataInput接口实现而来的,提供了一系列的直接从输入流中读取相应类型数据的方法。6.1.5应用实践在指定磁盘上创建一个文件java\file\myDocument.txt,当文件的路径不存在时,要求程序能为其建立包括父目录在内的完整路径。然后用RandomAccessFile类实现对创建文件的写入和随机读取操作。任务6.2流操作文件4情境描述123问题分析解决方案知识总结5应用实践6.2.1情境描述Tom设计的工资管理系统下的员工信息,利用流的方式实现文件的读取及写入操作,需要完成以下任务:1)利用字符流创建数据写入方法。2)利用字节流创建数据读取方法。6.2.2问题分析通过RandomAccessFile类能够实现文件的存储操作,然而,在文件操作的时候存在一定的缺陷,Java提供InputStream和OutputStream类,便于文件输入输出操作。6.2.3解决方案

1、打开Eclipse。2、在com.esms.file包下创建流文件操作类FileStreamHelper.java类。实现文件的流模式读取及写入操作。3、创建员工文件持久操作EmployeeAFile类,实现A类员工的添加、修改、删除及查询功能。4、在员工管理界面EmployeeAConsole类中调用实现员工信息持久类。5、运行测试数据持久。6.2.4知识总结1.流的概念所谓流(stream),是指有序的数据序列,它有一个来源(输入流)或者目的地(输出流)。我们往往可以从两个角度对流进行划分:从流的功能性角度来看,一个可以读取数据的对象被称为输入流,一个可以写入数据的对象被称为输出流;而从数据的组织方法来看,如果一个流的数据组织单位为字节,则称为字节流(二进制流),若是数据的组织单位为字符,则称为字符流(文本流)。6.2.4知识总结2.字节流java.io包中定义了进行二进制字节流的输入输出抽象类InputStream和OutputStream。这两个抽象类的扩展又提供了很多实用的字节流子类。6.2.4知识总结2.字节流(1)InputStream类:java.io.InputStream,此抽象类是表示字节输入流的所有类的超类,它声明了从特定资源读取字节的方法。InputStreamSequenceInputStreamPipedInputStreamFilterInputStreamFileInputStreamByteArrayInputStreamInputStreamStringBufferInputStreamAudioInputStreamObjectInputStreamPushbackInputStreamBufferedInputStreamDataInputStream6.2.4知识总结2.字节流(2)OutputStream类:作为其他字节输出流类的基类OutputStream,也有类似的层次派生结构类。OutputStreamOutputStreamPipedOutputStreamFilterOutputStreamFileOutputStreamByteArrayOutputStreamObjectOutputStreamPrintStreamBufferedOutputStreamDataOutputStream6.2.4知识总结3.字符流Java.io包中定义的用于字符流输入输出的抽象类是Reader和Writer。这些抽象类的扩展又提供了很多实用的字符流子类。Reader类层次结构ReaderPipedReaderBufferedReaderFilteredReaderStringReaderCharArrayReaderInputStreamReaderLineNumberReaderPushbackReaderFileReader6.2.4知识总结3.字符流Java.io包中定义的用于字符流输入输出的抽象类是Reader和Writer。这些抽象类的扩展又提供了很多实用的字符流子类。Writer类层次结构WriterPipedWriterBufferedWriterFilteredWriterStringWriterCharArrayWriterOutputStreamWriterFileWriterPrintWriter6.2.5应用实践用Java开发一个应用程序,由它来完成文件的复制,它不仅可以复制单个的文件,还可以对文件夹中全部内容进行复制。使用I/O操作实现一个文件的拷贝功能,类似DOS操作的copy命令。任务6.3对象的存储4情境描述123问题分析解决方案知识总结5应用实践6.3.1情境描述经过前面的操作后,员工对象是以文本文件存储到文件中,而在面向对象的程序设计中,员工的信息往往以对象的形式存在。为了简化数据储存格式转换的难度,需要完成以下任务:1)利用对象流实现内存对象直接写入到文件中。2)利用对象流实现硬盘文件读取到内存中。6.3.2问题分析在Java语言中,任务6.2的方法却面临存储格式的转换问题。Java语言提供对象ObjectInputStream及ObjectOutputStream解决此类问题,在实现对象存储的时候需要注意,Java的对象需要进行序列化才能实现持久。6.3.3解决方案1、打开Eclipse。2、在com.esms.File下建立对象流ObjectStreamHelper类,实现对象流的写入和读取操作。3、在ObjectStreamHelper类下添加write方法。4、在ObjectStreamHelper类下添加read方法,读取对象。5、编写B类员工数据持久操作类EmployeeBFile.java。6、修改EmployeeB类,添加对象序列化。7、修改EmployeeBConsole,实现对象持久。6.3.4知识总结1.标准流Java平台提供了标准流实现命令行交互的方式。Java平台支持3种标准流:①标准输入,对象是键盘,通过System.in访问;②标准输出stdout,对象是屏幕,通过System.out访问;③标准错误输出stderr,对象也是屏幕,通过System.err访问。6.3.4知识总结2.格式化输入Java语言中,格式化输入是通过类java.util.Scanner来完成的。Scanner类的主要是从键盘或文件等读取基本数据类型和读取一行字符信息。主要方法如下:nextLine():读入一行字符串。nextInt():读入下一个整数。nextFloat、nextDouble:将输入信息按浮点数读取。hasNext():测试输入流中是否还有数据。3.格式化输出printf方法的基本形式是:printf(格式说明符,对象列表)6.3.4知识总结4.对象序列化如果要想完成对象的序列化,则还要依靠ObjectOutputStream类和ObjectInputStream类,前者属于序列化操作,

温馨提示

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

评论

0/150

提交评论