java中 IO流 总结之三:字节流总结

字节流的抽象父类是:InputStream和OutputStream

 InputStream类:字节数据输入流的基类

常用的方法如下:

available()返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。

close() 关闭此输入流并释放与该流关联的所有系统资源。

mark(int readlimit) 在此输入流中标记当前的位置。

markSupported() 测试此输入流是否支持 mark 和 reset 方法。

read() 从输入流中读取数据的下一个字节。

read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。

read(byte[] b, int off, int len)
将输入流中最多 len 个数据字节读入 byte 数组。

reset()将此流重新定位到最后一次对此输入流调用 mark 方法时的位置。

skip(long n) 跳过和丢弃此输入流中数据的 n 个字节。

 

 OutputStream类:字节数据输出流的基类

常用的方法如下:

close() 关闭此输出流并释放与此流有关的所有系统资源。

flush()刷新此输出流并强制写出所有缓冲的输出字节。

write(byte[] b) 将 b.length 个字节从指定的 byte 数组写入此输出流。

write(byte[] b, int off, int len)
 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。

write(int b) 将指定的字节写入此输出流。

 

1)FileInputStream和FileOutputStream
这两个节点流用来操纵磁盘文件。这些类的构造函数允许你指定它们所连接的文件。
要构造一个FileInputStream,所关联的文件必须存在而且是可读的。
如果你要构造一个FileOutputStream而输出文件已经存在,则它将被覆盖。
FileInputStream infile = new FileInputStream(”myfile.dat”);
FileOutputStream outfile = new FileOutputStream(”results.dat”);
2)、 BufferInputStream和BufferOutputStream
这些是过滤器流,它们可以提高I/O操作的读写效率。
3)、PipedInputStream和PipedOutputStream
管道流用来在线程间进行通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。
要使管道流有用,必须有一个输入方和一个输出方。
4)、 DataInputStream和DataOutputStream
这些过滤器通过流来读写Java基本类

示例代码如下:

1):写入字节流InputStream示例代码:

FileInputStream fos=new FileInputStream("E://inPutStreamReader.txt");

//这种方式用于小数据,如果用于大数据,会发生内存溢出的现象。//char[] ch=new char[fos.available()];

byte[]  by=new byte[1024];//定义一个字节数组

 int len=0; 

 while((len=fos.read(by))!=-1){

 System.out.println(new String(by,0,len));

 }

fos.close();//关闭流

2)、字节写入流的示例代码如下:

 FileOutputStream fos=

         new FileOutputStream("E://inPutStreamReader.txt");

fos.write("abbbbbbcdbb".getBytes());

 fos.close();

3):创建一个字节流的缓冲区代码如下:

//讲E://阿杜 - Andy.mp3"复制到到E盘下新创建的一个MP3文件Andy.mp3

BufferedInputStream buis=new BufferedInputStream(new FileInputStream("E://阿杜 - Andy.mp3"));

BufferedOutputStream buos=new BufferedOutputStream(new FileOutputStream("E://Andy.mp3"));

        int i=0;

         while((i=buis.read())!=-1){

         buos.write(i);

         }

         buis.close();

         buos.close();

<!--EndFragment-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值