JSP的文件操作.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JSP的文件操作

为了进行文件读写操作,需要用适当的Java I/O类创建对象,这些对象包含从文件中读写数据的方法。 Java I/O中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示:InputStream,OutputStream,Reader,Writer。Java中其它多种多样变化的流均是由它们继承出来的。 图10-4 输入流示意图 图10-5 输出流示意图 以字节为单位进行读写的称为字节流。 字节流分为“输入流”和“输出流”。可以从中读出一系列字节的对象称为“输入流”(Input Stream);而能向其中写入一系列字节的对象则称为“输出流”(Output Stream) 这两种对象分别是由java.io包中的抽象类InputStream和OutputStream来实现的。 图10-6 InputStream类结构图 图10-7 OnputStream类结构图 Java中的字符流则用于处理字符的输入和输出 采用Unicode编码,以实现国际化 字符流也是通过两个顶层的抽象类Reader和Writer的子类来实现对Unicode字符流的处理 图10-8 Reader类结构图 图10-9 Writer类结构图 Java提供了许多进行文件输入输出的类。从读写文件类型的不同,可以将这些类分为文本I/O类与二进制I/O类对应对文本文件和二进制文件进行读写。 在文本文件中存储的数据是以字符编码方式表示的 在二进制文件中存储的数据是用二进制形式来表示的。 在读取文件中,可以使用两种方式: 字节流InputStream的方式 字符流Reader的方式 在JSP中使用的是Reader的子类java.io.FileReader,同时为了提高输入效率,可以使用带缓冲(java.io.BufferedReader)的输入流方式来读取文件资源 若需要读取的文件不存在,则会抛出FileNotFoundException。 见程序清单10-3:直接读取文本文件dt.txt到页面显示的程序:readfile1.jsp 见程序清单10-4:使用缓冲:readfile2.jsp 在写入文件中,同样可以使用字节流和字符流两种方式 如使用字符输出流Writer的子类java.io.FileWriter,或使用缓冲(java.io.BufferedWriter)的方法来提高输出效率。 如果指定文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;或因为其他某些原因而无法打开它,则会抛出一个IOException。 见程序清单10-5:从dt.txt读取的文本内容写入newdt.txt writefile1.jsp 见程序清单10-6:在Web页中嵌入一个文本框,并将文本框中的内容写入到了文件dt.txt中:writefile2.jsp 前面程序每次写入文件时写入的新内容都把原来文件中的老内容覆盖了。若要实现对文件的追加可以有两种方法: 使用带有boolean参数的FileWriter构造方法, 使用随机读写文件类RandomAccessFile。 FileWriter有带有boolean参数的构造方法 1)FileWriter( File?file, boolean?append)? 2)FileWriter( String?fileName, boolean?append) 其中第二个参数boolean?append,如果为true,则将数据写入文件末尾处,而不是写入文件开始处 RandomAccessFile的实例支持对随机存取文件的读取和写入。 随机存取文件存在指向该隐含数组的光标或索引,称为“文件指针”。输入/输出操作从文件指针开始读/写字节,并随着对字节的读/写前移此文件指针。操作导致该数组扩展。 该文件指针可以通过 getFilePointer方法读取,并通过seek方法设置 RandomAccessFile的构造方法有两个: 1)RandomAccessFile( File?file, String?mode) 2)RandomAccessFile( String?name, String?mode) 第一个参数用于指定需要打开的文件,第二个参数String?mode表示打 开文件的方式,共有以下4个参数可选: 1)r:以只读方式打开,调用任何write方法都将导致抛出I OException; 2)rw :以读取和写入打开,如果该文件不存在,则尝试创 建该文件; 3)rws :以读取和写入打开,还要求对文件的内容或元数 据的每个更新都同步写入到基础存储设备,元数据指文 件的信息数据,如最后修改时间,长度等; 4) rwd :以读取和写入打开,还要求对文件内容的

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档