课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > java教程 > java IO流之字节输出流
  • java IO流之字节输出流

    发布:昆明Java培训      来源:博客园      时间:2016-11-11

  • 昆明Java培训班的老师今天给大家讲字节输出流(OutputStream)。

    输出:将内存中的数据写入磁盘文件中

    OutputStream类是Java IO API中所有输出流的基类,主要是将内存中的数据输入到目标媒介中。

    public abstract class OutputStream implements Closeable, Flushable {

    //写入一个字节到stream中

    public abstract void write(int b) throws IOException;

    //把字节数组中所有数据写入到输出流中

    public void write(byte b[]) throws IOException {

    write(b, 0, b.length);

    }

    //把字节数据中从offset位置开始,length个字节的数据写入到输出流。

    public void write(byte b[], int off, int len) throws IOException {

    }

    //方法将所有写入到OutputStream的数据冲刷到相应的目标媒介中,即使所有数据都写入到了FileOutputStream,这些数据还是有可能保留在内存的缓冲区中。通过调用flush()方法,可以把缓冲区内的数据刷新到磁盘

    public void flush() throws IOException {

    }

    //结束数据写入时,需要关闭OutputStream

    public void close() throws IOException {

    }

    }

    FileOutputStream 将数据写入文件

    够造函数:FileOutputStream(String ame, boolean append)创建一个向具有指定name的文件中写入数据的输出文件流。(在文件末尾追加写入)

    FileOutputStream(String ame)创建一个向具有指定名称的文件中写入数据的输出文件流。(在文件开头重新写入)

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

    2    public static void writeByte() throws IOException{

    3        OutputStream os=new FileOutputStream("E:\\javaTest\\1.txt");

    4        String str="中国";

    5        os.write(str.getBytes());

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

    7        os.flush();

    8        //close() 1、将流对象变为垃圾,便于jvm垃圾回收机制回收2、通知系统释放与该文件相关的资源

    9        os.close();

    10    }

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

    12    public static void writeInt() throws IOException{

    13        OutputStream os=new FileOutputStream("E:\\javaTest\\1.txt");

    14        //我们都知道计算机磁盘存入的是二进制数据,在这里将97当作底层的二进制数据写入磁盘,当我们通过记事本打开文件时,

    15        //该文件会根据ASCII字码表进行解码所以我们看到的是字符"a"

    16        os.write(97);

    17        os.flush();

    18        os.close();

    19    }

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

    21    public static void writeOffLen() throws IOException{

    22        OutputStream os=new FileOutputStream("E:\\test\\javaIo\\1.txt");

    23        byte [] bytes="中国".getBytes();

    24        os.write(bytes, 0, bytes.length);

    25        os.flush();

    26        os.close();

    27    }

    BufferedOutputStream字节输出(写)缓冲流

    字节流一字读写一个数组的速度明显比一次读写一个字节的速度快,这是因为加入了数组缓冲的效果,java设计的本身也考虑到了这种情况(装饰设计模式)所以提供了字节缓冲流(BufferedOutputStream)。该流仅提供缓冲区,是为 高读写效率而设计的。真正操作文件还是需要基本流对象来实现。BufferedOutputStream是OutputStream的子类具有一切父类的方法。

    public static void bufferOutPutStreamTest() throws IOException{

    BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("E:\\javaTest\\5.txt"));

    bos.write("中".getBytes());

    bos.flush();

    bos.close();

    }

    DataOutputStream(基本数据输出流):数据输出流允许应用程序以适当方式将基本Java数据类型写入输出流中。该类是FileOutputStream类的子类。该类提供了写入基础数据类型的方法。

    //写数据了

    dos.writeByte(10);

    dos.writeShort(100);

    dos.writeInt(1000);

    dos.writeLong(10000);

    dos.writeFloat(12.34F);

    dos.writeDouble(12.56);

    dos.writeChar('a');

    dos.writeBoolean(true);

    推荐文章

上一篇:java IO流之字节输入流

下一篇:字节输入流与字节输出流

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56