zoukankan      html  css  js  c++  java
  • IO流05_OutputStream和Writer输出流

    【输出流中的字节流和字符流】

    【OutPutStream和Writer】

    [ OutputStream和Writer中包含的方法 ]

    void write(int c)       将指定的字节/字符输出到输出流中,其中c既可以是字节,也可是字符

    void read( byte[] buf ) / void read( char[] buf )    将字节/字符数组中的数据输出到指定的输出流中

    void read( byte[] buf, int off, int len ) / void read( char[] buf, int off, int len )  将字节/字符数组中的数据从off位置开始,长度为len的字节/字符输出到输出流中。

    [ Writer特有的两个方法(针对String类型的数据) ]

    void write( String str )  将str字符串中包含的字符输出到指定的输出流中

    void write( String str, int off, int len ) 将str字符串里从off位置开始,长度为len的字符串输出到指定的输出流中。

    【测试1:FileInputStream输入内容,FileOutputStream将内容输出到磁盘】

    package com.Higgin.part3;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class FileOutputStreamDemo {
        public static void main(String[] args) throws IOException {
            FileInputStream fis = new FileInputStream("c://testJavaIO/aaa.java");  //创建字符输入流
            FileOutputStream fos = new FileOutputStream("c://testJavaIO/aaaNew.java");
            byte[] bbuf=new byte[1024];
            int hasInput=0;
            while((hasInput=fis.read(bbuf))>0){  //从aaa.java文件中不断取出数据
                fos.write(bbuf,0,hasInput);  //每读取一次数据,将数据写入输出流
            }
            /*
             *  直接InputStream.write(String)会出错,下面的fos.write(testStr);
             *  使用InputStream.write(String.getBytes())处理就可以了!如下就是修改后的fos.write(testStr.getBytes());
             */
            String testStr="哈哈哈哈哈哈";
            fos.write(testStr.getBytes());  //处理过str后就可以将流输出了
            fis.close();
            fos.close();
        }
    }

    【运行前文件位置】

    【运行后的结果】

     【测试2:FileWriter将String内容输出到磁盘】

    package com.Higgin.part3;
    
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class FileWriteDemo {
        public static void main(String[] args) throws IOException {
            FileWriter fw=new FileWriter("c://testJavaIO/ddd.txt");
            
            fw.write("HigginCui 2016阅读的金庸小说
    ");  //可以直接将String类型的数据写入Writer类型的输出流中,Writer类特有,OutputStream得先将字符串进行转化为byte[]数组
            fw.write("天龙八部
    ");
            fw.write("射雕英雄传
    ");
            fw.write("神雕侠侣
    ");
            fw.write("笑傲江湖
    ");
            
            fw.close();
        }
    }

     【运行后的结果】

    【注意】

    使用java的IO流执行输出的时候,不要忘记关闭输出流,关闭输出流有以下原因:

    1.保证物理流的资源被收回

    2.将输出流缓冲区中的数据flush到物理节点中(因为在执行close()方法之前,自动执行flush()方法 )

  • 相关阅读:
    Sass开发环境搭建
    三款Javascript SPAs框架资料整理和总结
    Web纯前端“旭日图”实现元素周期表
    能在多种前端框架下使用的表格控件
    控件使用经验-MVP模式+控件封装
    最好的Angular2表格控件
    跨平台开发的两种方法及其对比
    是时候 UWP 了 !
    你的系统也可以拥有“数据透视表”功能!
    Xamarin 免费了,你能做什么?
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5924434.html
Copyright © 2011-2022 走看看