首页 > 代码库 > IO包中的其他类

IO包中的其他类

查看各对象API文档

打印流

PrintWriter

PrintStream

 

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

SequenceInputStream

 1 public static void main(String[] args) throws IOException { 2  3          4         /* 5          * 需求:将1.txt 2.txt 3.txt文件中的数据合并到一个文件中。 6          */ 7          8 //        Vector<FileInputStream> v = new Vector<FileInputStream>();         9 //        v.add(new FileInputStream("1.txt"));10 //        v.add(new FileInputStream("2.txt"));11 //        v.add(new FileInputStream("3.txt"));12 //        Enumeration<FileInputStream> en = v.elements();13         14         ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();15         for(int x=1; x<=3; x++){16             al.add(new FileInputStream(x+".txt"));17         }18         19         Enumeration<FileInputStream> en = Collections.enumeration(al);20         21         22         23         /*24         final Iterator<FileInputStream> it = al.iterator();25         Enumeration<FileInputStream> en = new Enumeration<FileInputStream>(){26 27             @Override28             public boolean hasMoreElements() {29                 30                 return it.hasNext();31             }32 33             @Override34             public FileInputStream nextElement() {35                 36                 return it.next();37             }38             39         };*/40         41         SequenceInputStream sis = new SequenceInputStream(en);42         43         FileOutputStream fos = new FileOutputStream("1234.txt");44         45         byte[] buf = new byte[1024];46         47         int len = 0;48         49         while((len=sis.read(buf))!=-1){50             fos.write(buf,0,len);51         }52         53         fos.close();54         sis.close();55         56     }

 

操作对象的流:被操作的对象必须要序列化,即要实现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包中的其他类