查看各对象API文档

打印流

PrintWriter

PrintStream

序列流:对多个流进行排列合并

SequenceInputStream

 public static void main(String[] args) throws IOException {

         /*
          * 需求:将1.txt 2.txt 3.txt文件中的数据合并到一个文件中。
          */

 //        Vector<FileInputStream> v = new Vector<FileInputStream>();
 //        v.add(new FileInputStream("1.txt"));
 //        v.add(new FileInputStream("2.txt"));
 //        v.add(new FileInputStream("3.txt"));
 //        Enumeration<FileInputStream> en = v.elements();

         ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
         for(int x=1; x<=3; x++){
             al.add(new FileInputStream(x+".txt"));
         }

         Enumeration<FileInputStream> en = Collections.enumeration(al);

         /*
         final Iterator<FileInputStream> it = al.iterator();
         Enumeration<FileInputStream> en = new Enumeration<FileInputStream>(){

             @Override
             public boolean hasMoreElements() {

                 return it.hasNext();
             }

             @Override
             public FileInputStream nextElement() {

                 return it.next();
             }

         };*/

         SequenceInputStream sis = new SequenceInputStream(en);

         FileOutputStream fos = new FileOutputStream("1234.txt");

         byte[] buf = new byte[1024];

         int len = 0;

         while((len=sis.read(buf))!=-1){
             fos.write(buf,0,len);
         }

         fos.close();
         sis.close();

     }

操作对象的流:被操作的对象必须要序列化,即要实现Serializable接口(标记接口)

ObjectInputStream

ObjectOutputStream

transient:非静态的数据不想被序列化可以用这个关键字修饰、

RandomAccessFile类:随机访问文件,自身具有读写的方法。

它不是IO体系中的子类,父类是Object

特点:

  1.该对象即能读,又能写,之前所学io对象一般只具备读或者写

  2.该对象内部维护了一个byte数组,并通过指针可以操作数组中的元素

  3.可以通过getFilePointer方法来获取指针的位置,和通过seek方法来设置指针的位置

  4.其实该对象就是对字节输入流与字节输出流进行了封装。

  5.该对象的源和目的只能是文件,通过构造函数可以看出。

管道流:输入和输出可以直接相连,通常结合线程使用。

PipedInputStream

PipedOutputStream

操作基本数据类型的流

DataInputStream

DataOutputStream

操作字节数组的流:源和目的都是内存

ByteArrayInputStream

ByteArrayOutputStream

操作字符数组的流

CharArrayInputStream

CharArrayOutputStream

操作字符串

StringRead

StringWriter

IO包中的其他类的更多相关文章

  1. 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

    ---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...

  2. Java基础---IO(三)--IO包中的其他类

    第一讲     对象序列化 一.概述 将堆内存中的对象存入硬盘,保留对象中的数据,称之为对象的持久化(或序列化).使用到的两个类:ObjectInputStream和ObjectOutputStrea ...

  3. IO包中的RandomAccessFile类

    RandomAccessFile RandomAccessFile 是随机访问文件的类.它支持对文件随机访问的读取和写入,即我们也可以从指定的位置读取/写入文件数据,因为该类在其内部封装了一个数组和指 ...

  4. Java笔记(二十八)……IO流下 IO包中其他常用类以及编码表问题

    PrintWriter打印流 Writer的子类,既可以接收字符流,也可以接收字节流,还可以接收文件名或者文件对象,非常方便 同时,还可以设置自动刷新以及保持原有格式写入各种文本类型的print方法 ...

  5. IO包中的其他类总结

    一.PrintStream和PrintWriter PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式. PrintStream 打印的所有字符都使用平台的默认字符 ...

  6. IO 包中的其他类

    打印流 PrintWriter 和 PrintWriter 直接操作输入流和文件 序列流 SequenceInputStream 对多个输入流进行合并 操作对象 ObjectInputStream 和 ...

  7. Java之IO(十四)IO包中其它类

    转载请注明出处:http://www.cnblogs.com/lighten/p/7267553.html 1.前言 此章介绍IO包中剩余未介绍的几个流和工具类,包括LineNumberReader. ...

  8. java.io包中的字节流—— FilterInputStream和FilterOutputStream

    接着上篇文章,本篇继续说java.io包中的字节流.按照前篇文章所说,java.io包中的字节流中的类关系有用到GoF<设计模式>中的装饰者模式,而这正体现在FilterInputStre ...

  9. Java IO流中的File类学习总结

    一.File类概述 File类位于java.io包中,是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. File类有多种重载的构造方法.File类保存文件或目录的各种 ...

随机推荐

  1. Java 反射 Array动态创建数组

    Java 反射 Array动态创建数组 @author ixenos 注:java.lang.reflect.Array 是个反射工具包,全是静态方法,创建数组以多维数组为基准,一维数组只是特殊实现 ...

  2. Struts2配置文件动态传参

    两个Action动态传递参数: 1.从一个Action传递到另一个Action如果带有参数那么result中的type属性需要使用redirect 第一个Action代码如下: private Str ...

  3. JSP中 JSTL

    1,JSTL是JSP的标准标签库的简称,JSP标准标签库包括5类:分别是核心标签库,国际化标签库,SQL标签库,XML标签库,函数标签库: 2,常用的就是核心标签库和SQL标签库: 核心标签库:前置名 ...

  4. 分享到QQ空间、新浪微博、腾讯微博和人人网

    function shareys(type, url, title, img, content) { switch (type) { case "sina": url = &quo ...

  5. chapter8_3 c代码和错误

    1.C代码 Lua提供的所有关于动态链接的功能都集中在一个函数中,即package.loadlib. 该函数有两个字符串参数:动态库的完整路径和一个函数名称: local path = "/ ...

  6. wcf使用ssl连接方式设置

    A.makecert -sr localmachine -ss My -n CN=TopupProxyServer -sky exchange -pe -r B.检索证书的指纹 ,证书名TopupPr ...

  7. ios ViewController的生命周期分析和基本使用逻辑

    按结构可以对iOS的所有ViewController分成两类:1.主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITable ...

  8. 你所不知道的mybatis居然也有拦截器

    对于mybatis的拦截器这个想法我来自于三个地方 也就是下面这个三个地方是可以使用的,其他的情况需要开发人员根据实际情况来使用. 1.对于分页的查询,我们可以对于分页的方法采用比较规范的命名,然后根 ...

  9. RESTful架构1--架构理解

    转自:理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时( ...

  10. int与byte的区别

    Java中涉及byte.short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型的结果.因此,如果把两个byte类型值相加,最后会得到一个int ...