



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
流的概念:流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。流的分类:流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流。实际上,流的源端和目的端可简单地看成是字节的生产者和消费者,对输入流,可不必关心它的源端是什么,只要简单地从流中读数据,而对输出流,也可不知道它的目的端,只是简单地往流中写数据。 输入流和输出流不是绝对不变的。对于一个文件而言,当向其中写入数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。对于键盘来说,只能是输入流;显示器则只能是一个输出流。 形象的比喻水流 ,文件=程序 ,文件和程序之间连接一个管道,水流就在之间形成了,自然也就出现了方向:可以流进,也可以流出.便于理解,这么定义流: 流就是一个管道里面有流水,这个管道连接了文件和程序。 按处理数据的类型,流可以分为字节流与字符流,输入字节流的类为InputStream,输出字节流为OutputStream,输入字符流为Reader,输出字符流为Writer InputStream类和OutputStream类是Java的两个主要流类,这两个类主要用来处理字节流,它们都是抽象类。对于标准输入System.in和标准输出System.out都是它们的子类。 Reader类与InputStream类基本功能相同,只是Reader类以字符(char)为单位读入。Writer类与OutputStream类基本功能也相同,只是Writer类也是以字符(char)为单位读入。 Java提供RandomAccessFile类来实现随机访问存储在文件不同位置的记录,即随机文件存取。 Java还提供了一个File类用于获取磁盘中的文件或目录信息,File类的对象并不打开文件,也不提供任何文件处理功能。 标准输入输出: 在JDK中提供了一个System类,该类用于管理标准输入输出流和错误流当用户开始运行Java应用程序或applet时,会自动建立3个对象:System.in、System.out、Syetem.err,与这些对象相联系的流可以为程序提供与指定文件或设备间的通信信道。 System.in是属于BufferedInputStream类型System.out是属于PrintStream类型 System.err也是属于PrintStream类型 PrintStream类: PrintStream类 println() 是PrintStream类的方法,能提供复杂的输出 PrintStream类的方法有: write, flush, checkError,print, println,close. 其中println可以输出多种形式的数据.例如: println(String s), println(char c)等字符流与字节流的区别: 在io包中,还根据流中的数据类型不同,将流分为字节流类和字符流类。其中,字节流类专门负责处理以字节为传输单位的操作;而字符流类则专门负责处理以字符为传输单位的操作。Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。字节流:表示以字节为单位从stream中读取或往sream中写入信息,即io包中的inputstream类和outputstream类的派生类。通常用来读取二进制数据,比如图像声音。 InputStream类和OutputStream类用于来处理字节流,前面介绍了,这两个类都是抽象类,它们分别为其子类定义了文件处理一些通用处理方法。 属于InputStream类的方法有: read():从流中读入数据 skip():跳过流中若干字节数 available():返回流中可用字节数 mark():在流中标记一个位置 reset():返回标记过的位置 markSupport():是否支持标记和复位操作 close():关闭流 InputStream类重要的子类有: FileInputStream, FilterInputStream ,PipedInputStream 属于OutputStream类的方法有: write(int b):将一个整数输出到流中 write(byte b):将数组中的数据输出到流中 write(byte b, int off,int len):将数组b中从off指定的位置开始len长度的数据输出到流中 flush():将缓冲区中的数据强制送出 close():关闭流 OutputStream类重要的子类有:FileOutputStream,FilterOutputStream ,PipedOutputStream文件输入输出流: 从磁盘文件中读取数据,或者将数据写入文件,需要用文件输入、输出流类FileInputStream和FileOutputStream。 例如:File myFile = new File(“MyFile”);FileInputStream fileInputStream = new FileInputStream (myFile); (通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 myfile 指定。)FileOutputStream fileoutstream = new FileOutputStream(myFile);(创建一个向指定 File 对象表示的文件中写入数据的文件输出流。)public void readAndWrite(File file,File toFile)FileInputStream fileIS = null;FileOutputStream fileOutputStream = null;try fileIS = new FileInputStream(file);System.out.println(fileIS);/ 判断file是否存在if (toFile != null) if (toFile.isDirectory() System.out.println(toFile.isDirectory();toFile.mkdirs(); / 创建指定的目录toFile = new File(toFile,default);/根据 toFile 抽象路径名和 default 路径名字符串创建一个新 File 实例。fileOutputStream = new FileOutputStream(toFile);System.out.println(fileOutputStream);int b;while(b=fileIS.read() != -1)fileOutputStream.write(b); catch (Exception e) e.printStackTrace();finallytry fileOutputStream.close();fileIS.close(); catch (IOException e) e.printStack
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现场审查保密工作汇报材料
- 银行公司技能比武管理办法
- 疫情防控模拟面试题
- 中学教育面试题库之教育教学策略
- 酒店合作婚庆布置方案(3篇)
- 人防岗位面试题库精 编:专业面试技巧与实战模拟
- 文化小区治理规划方案(3篇)
- 整体装修安排方案(3篇)
- 地板修补施工方案(3篇)
- 智慧城管建方案(3篇)
- 工作总结及工作思路(输电运维班)
- 气管及支气管内插管
- 2025内蒙古森工集团招聘工勤技能人员3100人笔试参考题库附带答案详解析集合
- 登销记以及运统46系统运用21课件
- 腾讯云TCA云架构工程师考试真题
- 兽医产科学之公畜科学课件
- 动物育种学第四章生产性能测定
- DB32T 4252-2021 民用建筑燃气安全规范
- 事务所合同管理制度
- 最新五年级上册音乐教案
- 河蟹的营养需要与饲料优化技术
评论
0/150
提交评论