字节流的抽象父类是: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-->