IO-16

以下来自新浪博客:http://blog.sina.com.cn/s/blog_6e5195850100mh5v.html

一.SequenceInputStream 序列流
 1.可以将多个InputStream合并
 2.序列流有两个构造函数
  1).两个InputStream合并
  2).多个InputStream合并, 通过Enumeration, 可以将多个流装入Vector, 调用elements()方法获得Enumeration
 3.在读取序列流的数据的时候, 会依次读每一个流中的数据, 第一个流读到了末尾, 会继续读第二个, 以此类推. 读到最后一个流末尾返回-1

二.ObjectInputStream, ObjectOutputStream, 对象操作流
 1.可以将程序中的对象写出.
 2.对象必须实现Serializable接口, 这个接口是一个标识, 标志着实现了这个接口的类可以被序列化, 其中没有任何方法.
 3.ObjectInputStream和ObjectOutputStream成对使用, ObjectOutputStream写出的对象可以用ObjectInputStream读出来.
 4.在读的时候, 如果到达文件末尾, 会抛出异常java.io.EOFException
 5.在一个文件中, 尽量只写一个对象.
 
三.PrintStream, PrintWriter, 打印流
 1.printStream.write(98)
  1).由于是字节流, 会将int转为byte
  2).先将int值98强转成byte,去掉高位24位,然后写出去
 2.printStream.print(98)
  1).首先这个98是一个int值, 会自动装箱成Integer
  2).print方法会调用实参的toString方法.得到一个字符串
  3).将这个字符串编码, String.getBytes();
  4).将二进制数组写出去
 3.printWriter.write(20013)
  1).由于是字符流, 会将int转为char
  2).先将int值20013强转为char, 去掉前面16位, 然后写出去.
 4.printWriter.print(98);
  1).首先这个98是一个int值, 会自动装箱成Integer
  2).print方法会调用实参的toString方法.得到一个字符串
  3).直接将这个字符串写出
  
四.DataStream
 1.DataOutputStream可以将基本数据类型按存储大小输出, writeInt()输出4个字节, writeChar()输出2个字节
 2.DataInputStream可以按基本数据类型大小读取数据, readInt()读4个自己, 转换为int, readChar()读2个字节, 转为char
 
五.内存操作流
 1.ByteArrayInputStream可以接受一个byte[], 从内存中读取.
 2.ByteArrayOutputStream可以将输入先写到内存中, 之后通过toByteArray()转成byte[]
 
六.管道流
 1.PipedInputStream和PipedOutputStream搭配使用, 通过connect()方法连接, 之后从输出流中写出的数据, 就可以在输入流中接受到了
 
七.随机读写文件 RandomAccessFile
 1.在创建对象的时候可以指定mode, "r","rw", 只读,或者读写
 2.通过对象的read(),write()方法可以对文件读写
 3.seek()方法可以定位指针, 操作读写的位置
 

0.逐行读取day17-笔记.txt, 将所有行反向输出到另外一个文件. (第一行写到最后一行, 第二行写到倒数第二行)
1.接受用户输入一个路径, 将路径中所有.java文件拷贝到另外一个路径中, 并且重命名为.txt文件
2.接受用户输入一个路径, 将该路径中所有.java文件删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值