首页 > 代码库 > 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包中的其他类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。