欢迎来到天天文库
浏览记录
ID:46944928
大小:433.50 KB
页数:57页
时间:2019-11-30
《Java课程讲义(No.10)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java面向对象程序设计主讲教师:郑大庆zhengdaqing@126.com上海财经大学信息管理与工程学院第十讲《Java的输入和输出》主要方式、范围流式I/O基础随机读取文件Java文件管理对象输入/输出流2上海财经大学信息管理与工程学院输入输出的基本概念程序与用户之间的沟通桥梁程序接受输入:磁盘,内存,外设(键盘)程序输出:磁盘,外设(屏幕,打印机)3上海财经大学信息管理与工程学院流:从源到目的的字节的有序序列,先进先出。Java中的输入输出是以流的方式处理,顺序读取。流(Stream)的概念流的方向性4上海财经大学信息管理与工程学院流操作的过程Reading:ope
2、nastreamwhile(moredata){readdata}closethestreamWriting:openastreamwhile(moredata){writedata}closethestream5上海财经大学信息管理与工程学院基本类两种基本流(抽象类):输入流(InputStream,read)输出流(OutputStream,write)基本类中定义了完成基本I/0操作的抽象方法读写操作:read(),write()关闭流的操作:close()强制送出并清空缓冲区数据的操作:flush()输入/输出流:标准类,位于java.io包中流的读操作过程:打开流
3、->执行读操作->关闭流流的写操作过程:打开流->执行写操作->关闭流6上海财经大学信息管理与工程学院流的分类:字节流和字符流流式I/O类根据操作的数据类型(16位字符或字节)分成两个层次体系。字节流:数据以8位字节为单位进行读写字符流:数据以16位字符(Unicode)为单位进行读写(Java中通常指的流是字节流)7上海财经大学信息管理与工程学院流的分类:两种结构的流节点流(NodeStream):从特定源(如磁盘文件或内存某区域)进行读或写入。过滤流(FilterSteam):使用其它的流作为输入源或输出目的地。lleho节点流(输入)过滤流(输入)其他流源8上海财经大
4、学信息管理与工程学院节点流过滤流注:字节流——输入流类层次9上海财经大学信息管理与工程学院是所有表示输入字节流类的父类(抽象类)适于读取面向字节的数据(字节流)三个基本read()方法intread()//从输入流中读一个字节并返回(-1表示文件结束)intread(byte[]b)//从输入流中连续读多个字节到数组b中,返回读的字节数intread(byte[]b,intoff,intlen)//从输入流中读len个字节到数组b中。off是写入数组的位置。InputStream10上海财经大学信息管理与工程学院其它方法voidclose()//关闭流。对于过滤流,则自顶向
5、下关闭之intavailable()//返回未读的字节数longskip(longn)//跳过n个字节booleanmarkSupported()//测试打开的流是否支持书签(回读)voidmark(inti)//标记当前流,并建立大小为i的缓冲区voidreset()//返回标签处InputStream11上海财经大学信息管理与工程学院节点流过滤流注:字节流——输出流类层次12上海财经大学信息管理与工程学院OutputStream是所有表示输出字节流类的父类。功能:接受要输出的字节并将它送往目的地。三个基本的write()方法voidwrite()//向输出流写一个字节v
6、oidwrite(byte[]b)//向输出流写一个字节数组voidwrite(byte[]b,intoff,intlen)其它方法voidclose()voidflush()//强行将缓存数据写出去,一般在调用close()方法关闭流前,可以先调用flush()方法。OutputStream13上海财经大学信息管理与工程学院Reader和Writer:字符流的两个抽象超类Reader和Writer类实现字节和字符间的自动转换。每一个核心输入、输出流字节流,都有相应的Reader和Writer版本。例如:FileInputStream(字节流)——FileReader(字符
7、流)PipedInputStream(字节流)——PipedReader(字符流)字符流一般规律:由XXXReader/Writer替代XXXInputStream/OutputStream14上海财经大学信息管理与工程学院节点流过滤流注:Reader的类层次15上海财经大学信息管理与工程学院intread();//读一个字符并将它作为int型数返回给调用语句(-1表示文件结束)intread(charcbuf[]);//读字符放入数组中intread(charcbuf[],intoff,intlen);//读字符
此文档下载收益归作者所有