查看各对象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. 【转】js获取url传递参数

    <Script language="javascript">var Request = new Object();Request = GetRequest();var ...

  2. ElasticSearch(5)-Mapping

    一.Mapping概述 映射 为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成全文本(Full-text)或精确的字符串值,Elasticsearch需要知道每个字段里面都包含了 ...

  3. JVM问题诊断常用命令:jinfo,jmap,jstack

    1.jinfo 描述:输出给定 java 进程所有的配置信息.包括 java 系统属性和 jvm 命令行标记等. 用法: jinfo [ option ] pid jinfo [ option ] e ...

  4. .Net Core 读取appsettings.json的配置

    在.net core中是没有*.config 文件的 配置文件都是*.json 1.在project.json里下面这行代码 "Microsoft.Extensions.Options.Co ...

  5. [ An Ac a Day ^_^ ] Codeforces Round #368 Div. 2 A B C

    昨天才回学校 刚好赶上CF所以就没写博客 不过还是水题了…… A. 比赛的时候被hack了 仔细读题才知道grey也算是黑白的 英语不好好伤心…… #include<stdio.h> #i ...

  6. TFS 2012使用简介

    为什么使用TFS 2012进行源代码管理——TFS 2012使用简介(一)  来源:雪雁 http://www.cnblogs.com/codelove/archive/2013/03/16/2963 ...

  7. mysql的存储引擎如何选择

    myisam:如果表对事务要求不高,用时以查询和添加为主,我们考虑myisam存储,如bbs中的发帖表.回复表 innodb:对事务要求高,保存的数据都是重要的数据,我们建议使用innodb,比如订单 ...

  8. C语言的常用字符串操作函数(一)

    一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...

  9. selinux策略开发

    所用软件: 1.setools -->seaudit  读取日志以确定所需权限 2.Reference Policy  -->  https://github.com/TresysTech ...

  10. UVALive 2520 Holedox Moving(BFS+状态压缩)

    这个题目在比赛的时候我们是没有做出来的,但是听到他们说进制哈希的时候,感觉真的是挺高端的,于是赛后开始补题,本着我的习惯在看题解之前自己再试着写一遍,我当时存储状态的方法是string + map,我 ...