




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaJava语言高级编程语言高级编程输入与输出输入与输出2目标目标p理解流的概念理解流的概念p掌握字节流和字符流的基本概念掌握字节流和字符流的基本概念p掌握字节流的基本使用掌握字节流的基本使用p掌握字符流的基本使用掌握字符流的基本使用3流的概念流的概念pJavaJava通过流实现输入与输出通过流实现输入与输出pJavaJava使用使用流流对象封装了内存与数据源之间数据对象封装了内存与数据源之间数据传输。传输。n流是一个很形象的概念,当程序需要读取数据的时候,流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文就会开启一个通向数据源的流,这个数据源可
2、以是文件,或是网络连接。类似的,当程序需要写入数据的件,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中以想象数据好像在这其中“流流”动一样动一样。4流的分类流的分类p输入流和输出流:输入流和输出流:n输入流是从外设传输数据进入内存的流。输入流是从外设传输数据进入内存的流。n输出流是从内存传输数据至外设的流。输出流是从内存传输数据至外设的流。p字节流和字符流:字节流和字符流:n字节流是指以字节为数据最小传输单位的流。字节流是指以字节为数据最小传输单位的流。n字符流是指以字符(双字节)为数
3、据最小传输单位字符流是指以字符(双字节)为数据最小传输单位的流。的流。5流的四个根类流的四个根类pInputStream-InputStream-字节输入流字节输入流pOutputStream-OutputStream-字节输出流字节输出流pReader-Reader-字符输入流字符输入流pWriter-Writer-字符输出流字符输出流6字节流字节流p字节流的特点:字节流的特点:n字节流采用一个字节(字节流采用一个字节(8 8个位)为单位进行数据的输个位)为单位进行数据的输入和输出。入和输出。n所有的输入和输出在底层上,都是面向字节的。所有的输入和输出在底层上,都是面向字节的。7字节流字节流
4、8InputStreampInputStreamInputStream类是所有字节输入流类的基类,类是所有字节输入流类的基类,是个抽象类。是个抽象类。p常用的方法:常用的方法:nint read()l如果下一个字节可读,以整数的形式如果下一个字节可读,以整数的形式返回读取的字节值返回读取的字节值,如果到了流末尾,则返回如果到了流末尾,则返回-1。nint read(byte b)l从流中最多读取从流中最多读取b.length个数据字节放入数组个数据字节放入数组b b中,中,以整以整数形式数形式返回实际读取的字节数返回实际读取的字节数,如果到了流末尾,则返回,如果到了流末尾,则返回-1。nint
5、 read(byte b,int off,int len)l从流中最多读取从流中最多读取len个数据字节放入数组个数据字节放入数组b中中,并从并从boff开始放入数组,以整数形式开始放入数组,以整数形式返回实际读取的字节数返回实际读取的字节数,如果,如果到了流末尾,则返回到了流末尾,则返回-1。nvoid close()l关闭输入源。关闭输入源。 9FileInputStreampFileInputStreamFileInputStream是是InputStreamInputStream的子类。的子类。pFileInputStreamFileInputStream是读取文件的字节输入流。是读取
6、文件的字节输入流。pFileInputStreamFileInputStream常用的构造方法:常用的构造方法:nFileInputStream(File file)FileInputStream(File file)nFileInputStream(String filename)FileInputStream(String filename)pFileInputStreamFileInputStream覆盖实现了父类如下方法:覆盖实现了父类如下方法:nint available()nvoid close()void close()nint read()int read()nint read
7、(byte b)int read(byte b)nint read(byte b,int off,int len)10FileInputStreamp一个有关一个有关FileInputStreamFileInputStream类的例子(读取文件的信息):类的例子(读取文件的信息):public static void main(String args) File file=new File(test.txt);byte bt=new byte(byte)file.length();try FileInputStream fis=new FileInputStream(file);fis.rea
8、d(bt);for (int i = 0; i bt.length; i+) System.out.print(char)bti+t); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();11OutputStreampOutputStreamOutputStream类是所有字节输出流类的基类,类是所有字节输出流类的基类,也是个抽象类。也是个抽象类。p在在JavaJava中大多数流类都是成对出现的,了解这中大多数流类都是成对出现的,了解这一规律有利于大家对流
9、类的掌握。一规律有利于大家对流类的掌握。12OutputStreampOutputStreamOutputStream类的常用方法:类的常用方法:nvoid write(int b)void write(int b)l写入单个字节到输出流。写入单个字节到输出流。nvoid write(byte b)void write(byte b)l将字节数组将字节数组b b中的数据写入此输出流。中的数据写入此输出流。nvoid write(byte b,int off,int len)void write(byte b,int off,int len)l将数组将数组b b内从内从boffboff开始的开始
10、的lenlen个字节写入此输出流。个字节写入此输出流。 nvoid flush()void flush()l清空输出流缓冲区。清空输出流缓冲区。nvoid close()void close()l关闭输出流。关闭输出流。13FileOutputStreampFileOutputStreamFileOutputStream是是OutputStreamOutputStream的子类的子类pFileOutputStreamFileOutputStream是写入文件的字节输出流是写入文件的字节输出流pFileOutputStreamFileOutputStream常用的构造方法:常用的构造方法:nFi
11、leOutputStream(File file)FileOutputStream(File file)nFileOutputStream(String filename)FileOutputStream(String filename)nFileOutputStream(File file,boolean append)FileOutputStream(File file,boolean append)nFileOutputStream(String filename,boolean append)FileOutputStream(String filename,boolean append
12、)pFileOutputStreamFileOutputStream覆盖实现了父类如下方法:覆盖实现了父类如下方法:nvoid close() void close() nvoid flush() void flush() nvoid write(int b) void write(int b) nvoid write(byte b) void write(byte b) nvoid write(byte b,int off,int len)void write(byte b,int off,int len)14FileOutputStreamp一个有关一个有关FileOutputStream
13、FileOutputStream类的例子(向文件输出内容):类的例子(向文件输出内容):public static void main(String args) public static void main(String args) try try FileOutputStream fos=new FileOutputStream(new File(test.txt);FileOutputStream fos=new FileOutputStream(new File(test.txt);for (int i = 97; i 123; i+) for (int i = 97; i 123;
14、i+) fos.write(char)i);fos.write(char)i); fos.flush();fos.flush();System.System.outout.println(.println(写入成功!写入成功!);); catch (FileNotFoundException e) catch (FileNotFoundException e) e.printStackTrace();e.printStackTrace(); catch (IOException e) catch (IOException e) e.printStackTrace();e.printStackT
15、race(); 15字符流字符流p字符流的特点:字符流的特点:n字符流采用字符流采用UNICODEUNICODE编码即编码即2 2个字节(个字节(1616个位)为单个位)为单位进行数据的输入和输出。位进行数据的输入和输出。n由于字符流采用的是由于字符流采用的是UNICODEUNICODE编码,能够实现文字编码,能够实现文字信息的国际化,因此在处理文字(字符)信息的场信息的国际化,因此在处理文字(字符)信息的场合,字符流比字节流更为有效。合,字符流比字节流更为有效。16字符流字符流17ReaderpReaderReader类是所有字符输入流类的基类,是个抽类是所有字符输入流类的基类,是个抽象类。
16、象类。pReaderReader的常用方法:的常用方法:nvoid close() void close() l关闭输入源。关闭输入源。nint read() int read() l从输入流读取单个字符的整数表示,如果不存在则返回从输入流读取单个字符的整数表示,如果不存在则返回-1-1。nint read(char cbuf) int read(char cbuf) l从输入流中将字符读入数组,返回实际读取的字符数,如从输入流中将字符读入数组,返回实际读取的字符数,如果遇到文件结尾返回果遇到文件结尾返回-1-1。nint read(char cbuf,int off,int len)int
17、read(char cbuf,int off,int len)l将字符读入数组的某一部分。将字符读入数组的某一部分。 18WriterpWriterWriter类是所有字符输出流类的基类,也是个抽象类。类是所有字符输出流类的基类,也是个抽象类。pWriterWriter的常用方法:的常用方法:nvoid write(int ch) l写入单个字符到调用的输出流。写入单个字符到调用的输出流。nvoid write(String str) l写入写入str到输出流。到输出流。nvoid write(String str, int off, int len)l写入字符串的某一部分。写入字符串的某一部
18、分。 nvoid write(char cbuf)l写入字符数组。写入字符数组。 nvoid write(char cbuf,int off,int len)l 写入字符数组的某一部分。写入字符数组的某一部分。 nWriter append(char c) l将指定字符追加到此将指定字符追加到此 writer。nvoid flush() l清空输出缓冲区。清空输出缓冲区。nvoid close() l关闭输出流。关闭输出流。19FileReaderp此类是此类是ReaderReader子类,是读取字符文件的便捷类,子类,是读取字符文件的便捷类,可以使用它直接读取文件的内容。可以使用它直接读取文
19、件的内容。pFileReaderFileReader类常用构造方法类常用构造方法nFileReader(File file)FileReader(File file)nFileReader(String filename)FileReader(String filename)20FileWriterp此类是此类是WriterWriter的子类,是向文件写入字符的便的子类,是向文件写入字符的便捷类,使用它可以方便地创建一个写文件的对捷类,使用它可以方便地创建一个写文件的对象。象。pFileWriterFileWriter类常用构造方法类常用构造方法nFileWriter(File file)Fi
20、leWriter(File file)nFileWriter(String filename)FileWriter(String filename)nFileWriter(File file,boolean append)FileWriter(File file,boolean append)nFileWriter(String filename,boolean append)FileWriter(String filename,boolean append)21BufferedReaderpBufferedReaderBufferedReader由由ReaderReader类扩展而来,提供通
21、类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的用的缓冲方式文本读取,而且提供了很实用的readLine()readLine()方法。方法。pBufferedReaderBufferedReader有两个构造函数:有两个构造函数:nBufferedReader(Reader in)BufferedReader(Reader in)l创建使用缺省尺寸输入缓冲区的缓冲字符输入流。创建使用缺省尺寸输入缓冲区的缓冲字符输入流。nBufferedReader(Reader in,int bufsize)BufferedReader(Reader in,int bufsize)l创建一个使用指定
22、大小输入缓冲区的缓冲字符输入流。创建一个使用指定大小输入缓冲区的缓冲字符输入流。pBufferedReaderBufferedReader的常用方法:的常用方法:nString readLine() String readLine() l读取一个文本行。读取一个文本行。22BufferedReaderp解决问题解决问题n开发一个开发一个JavaJava程序,其功能为计算一个文本文件有程序,其功能为计算一个文本文件有多少行多少行, ,并输出。并输出。23PrintWriterpPrintWriterPrintWriter继承了继承了WriterWriter类,但除此之外此类,但除此之外此类还实现了类还实现了PrintStreamPrintStream中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国无机离子交换材料项目投资计划书
- 中国异噁草松项目商业计划书
- 2025年中国三甲基甘氨酸盐酸盐项目投资计划书
- 2025年中国无机化工项目商业计划书
- 2025年中国农用聚磷酸铵项目商业计划书
- 中国氢燃料(液态燃料)项目商业计划书
- 鄂尔多斯市人民医院肝癌合并肝硬化患者手术决策与风险评估考核
- 邯郸市中医院产科危急重症输血管理考核
- 运城市人民医院Meek植皮技术专项技能考核
- 长治市人民医院药品有效期管理考核
- 某培训基地可行性研究报告
- 城市消防远程监控系统技术标准
- 玉米病害-弯孢霉叶斑病与小斑病
- 幼儿园医疗器械讲解
- 前列腺电切手术护理
- 安保人员信息登记表
- 与纳税服务对象有效沟通
- (1.6)-大学生恋爱观测试
- 篮球社招新纳新
- 脑电图与脑功能活动
- 安全管理意识三阶段
评论
0/150
提交评论