当前位置 > 主页 > 万和大讲堂 >


南京Java培训机构 输入输出流

2016-01-26 10:36

      在Java中,从不同角度定义了输入输出流的分类。以内存作为流的方向基点,可将其分为输入流和输出流,流向内存的成为输入流,流出内存的成为输出流。从数据操作的最小单元来分类,可将其分为字节流和字符流。根据抽象程度分类,可将其分为节点流和处理流,处理流是连接到实际物理节点的节点流的封装,这样既可以不必去关注节点的来源(文件或者数组),用统一的方法去操作,又可以使用更加方面的方法来实现操作。南京Java培训机构


  在学习中,本人对于输入输出流的总结归纳:

 

  A. 字节流和字符流其实并没有本质的区别,无非是它们二者的操作单元不同。字节流的基类为InputStream和OutputStream,字符流的基类为Reader和Writer。它们所提供的读写方法一样,区别在于参数,需要对应流类型。

 

  B. 输入流中的read系列方法是从输入流中读取数据的操作。空参数将返回所读取的字节(字符)。read方法中可以传入数组参数,数组的类型必须和流的数据类型相匹配,相当于一个竹筒,一次可读取最多等于数组容量的数据,并将所读数据装进数组中。

 

  C. 输出流中的write系列方法是向输出流中写入数据的操作。方法中的参数可以是整型或字符型变量,也可以传入数组参数,数组的类型必须和流的数据类型相匹配,相当于一个竹筒,一次可写入最多等于数组容量的数据。特别地,字符型输出流的write方法可以传入字符串。

 

  D. InputStream和OutputStream,Reader和Writer这四个类作为Java中输入输出流的抽象基类,并不能直接被初始化使用。Java中提供了一些继承了它们的类,用于实现具体的某种流操作。如:

 

  E. 在Java虚拟机中可以通过exec方法执行其他的应用程序,并返回Proess对象。利用该对象的getErrorStream、getInputStream和getOutputStream方法可以分别获得子进程的错误流,输出流和输入流(方向是以程序角度为基点)。南京Java培训机构

 

  F. RandomAccessFile类提供对文件的随机访问,程序可以直接跳转到文件的任何地方来读取数据。它内部提供了与字节流同法相同的读写方法,另外又加入了自由定位文件记录指针的方法seek。在读写操作时以字节为单位。在构造函数中还需加入一个mode参数由于制定读写权限。

 

  G. 需要注意Scanner对象的使用。Scanner对象用于捕获输入,并将输入内容转换为字符串。南京Java培训机构

 

  对于初学者来说一个容易忽略的地方是,需要区别节点流和处理流构造方法中参数的意义。节点流中,构造方法参数是要读取或者输出地物理节点,是“目的地”或者“始发地”,而处理流的构造函数参数是所要包装的处理流对象,包装之后的操作实际上是间接操作节点流,并未对被包装的节点流本身属性做修改。采用处理流包装后,可以不用管节点流的数据类型,而根据处理流的性质传递在节点流中不能传递的内容,例如Obj;同时还可以增加一些便于操作的方法,比如缓冲区。


最近开班 more>
  • Web前端开发
  • 软件测试
  • 软件测试预科班
  • AI大模型+全栈开发开班
  • 云原生精英班
  • 云网预科班
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第五期
  • Java全栈
  • CISP
  • HCIP-cloud
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCP 19C
  • RHCA
  • 6月9日
  • 5月21日
  • 5月14日
  • 6月9日
  • 5月7日
  • 5月26日
  • 5月19日
  • 5月12日
  • 6月3日
  • 6月9日
  • 随时开课
  • 7月12日
  • 5月19日
  • 5月19日
  • 5月7日
  • 5月10日
  • 5月24日
  • 5月24日
  • 随时开课
  • 随时开课
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入