面向对象与多线程综合实验-输入输出流.ppt

上传人:ga****84 文档编号:360133 上传时间:2018-09-26 格式:PPT 页数:19 大小:2.20MB
下载 相关 举报
面向对象与多线程综合实验-输入输出流.ppt_第1页
第1页 / 共19页
面向对象与多线程综合实验-输入输出流.ppt_第2页
第2页 / 共19页
面向对象与多线程综合实验-输入输出流.ppt_第3页
第3页 / 共19页
面向对象与多线程综合实验-输入输出流.ppt_第4页
第4页 / 共19页
面向对象与多线程综合实验-输入输出流.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、面向对象与多线程综合实验-输入输出流,教师:段鹏飞,实验 3-实验目的,了解Java中I/O流的概念和种类;掌握字节流处理和字符流处理,包括File类,InputStream/OutputStream及其子类,Reader/Writer及其子类;熟练掌握文件的顺序处理,随机访问处理;熟悉对象串行化的概念和方法。,实验内容,(1)完善showFileList()方法,实现档案信息浏览,在未讲数据库之前,系统中已存在档案信息放置在Hashtable中,提供新版DataProcessing类,该类实现了对应数据的查找、插入操作。(2)完善uploadFile()方法,实现档案数据的上传,在未讲网络之

2、前,该方法只需实现在指定目录中读取文件,并将其拷贝至其他目录中,此外还需将相关档案信息写入对应Hashtable中。(3)完善downloadFile(),实现档案数据下载,目前只需要实现根据档案号,在Hashtable中查找得到文件位置,然后读取文件并将其拷贝至指定目录中。,流的类型,根据流动方向的不同,流分为输入流和输出流;对于输入和输出流,由于传输格式的不同,又分为字节流和字符流:字节流是指8位的通用字节流,以字节为基本单位,在java.io包中,对于字节流进行操作的类大部分继承于InputStream(输入字节流)类和OutputStream(输出字节流)类;字符流是指16位的Unic

3、ode字符流,以字符(两个字节)为基本单位,非常适合处理字符串和文本,对于字符流进行操作的类大部分继承于Reader(读取流)类和Writer(写入流)类。,字节流和字符流,Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四)Java中其他多种多样变化的流均是由它们派生出来的,节点流类型,处理流类型,FileInputStream类的构造方法,FileInputStream类的构造方法有3种重载方式,以下是常用的几种。,FileInputStream类的常用方法,public class FileInputStreamDemo1 p

4、ublic static void main(String args) try File file = new File(test.txt); /创建文件对象 /使用文件对象创建文件输入流对象,相当于打开文件 FileInputStream fis = new FileInputStream(file); for (int i = 0; i file.length(); i+) char ch = (char)(fis.read(); /循环读取字符 System.out.print(ch); System.out.println(); fis.close(); /关闭流 catch (Fil

5、eNotFoundException fnfe) System.out.println(文件打开失败。); catch (IOException ioe) ioe.printStackTrace(); ,FileInputStream对象读文件示例1,public class FileInputStreamDemo2 public static void main(String args) try File file = new File(test.txt); /创建文件对象 FileInputStream fis = new FileInputStream(file); /根据文件的字节长度

6、创建字节数组 byte buf = new byte(int)(file.length(); fis.read(buf); /读取文件中的数据存放到字节数组中 String str = new String(buf); /利用字节数组创建字符串 System.out.println(str); /打印字符串 fis.close(); /关闭流 catch (FileNotFoundException fnfe) System.out.println(文件打开失败。); catch (IOException ioe) ioe.printStackTrace(); ,FileInputStream

7、对象读文件示例2,使用FileOutputStream类写文件,FileOutputStream类称为文件输出流,继承于OutputStream类,是进行文件写操作的最基本类;它的作用是将内存中的数据输出到文件中,我们可以利用它来写文件。,FileOutputStream类的构造方法,FileOutputStream类的构造方法有5种重载方式,以下是常用的几种。,FileOutputStream类的常用方法,public class FileOutputStreamDemo1 /在函数内部不进行异常处理,将异常抛出函数外部 public static void main(String args

8、) throws IOException String str = Hello world!; File file = new File(test.txt); /创建文件对象 /通过文件对象创建文件输出流对象 /附加第二个参数true,指定进行文件追加,默认为不追加 FileOutputStream fos = new FileOutputStream(file, true); /逐个将字符写入到文件中 for (int i = 0; i str.length(); i+) fos.write(str.charAt(i); fos.close(); /关闭流 ,FileOutputStream

9、对象写文件示例1,public class FileOutputStreamDemo2 /在函数内部不进行异常处理,将异常抛出函数外部 public static void main(String args) throws Exception String str = I Love Java; /通过文件名创建文件输出流对象 FileOutputStream fos = new FileOutputStream(test.txt); /将字符串转化为字节数组 byte buffer = str.getBytes(); /将字节数组中包含的数据一次性写入到文件中 fos.write(buffer

10、); /关闭流 fos.close(); ,FileOutputStream对象写文件示例2,FileInputStream类和FileOutputStream类是成对出现的,一个进行输入(读文件)操作,一个进行输出(写文件)操作;由于采用字节方式进行数据传输,不必考虑数据的格式问题,这两个类对文件操作的效率较高;可以使用这两个类完成复制文件的操作。,FileInputStream/FileOutputStream小结,复制文件示例,public class CopyFileDemo public static void main(String args) throws IOException

11、 File srcFile = new File(src.dat); /源文件对象 File destFile = new File(dest.dat); /目标文件对象 if (!(destFile.exists() /判断目标文件是否存在 destFile.createNewFile(); /如果不存在则创建新文件 /使用源文件对象创建文件输入流对象 FileInputStream fis = new FileInputStream(srcFile); /使用目标文件对象创建文件输出流对象 FileOutputStream fos = new FileOutputStream(destFile); byte buf = new byte1024; /创建字节数组,作为临时缓冲 System.out.println(开始复制文件.); while (fis.read(buf) != -1) /循环从文件输入流中读取数据 fos.write(buf); /写入到文件输出流中(注意文件多写) System.out.println(文件复制成功!); fis.close(); /关闭流 fos.close(); ,谢谢,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。