• 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()方法 )

  • 相关阅读:
    实例图解SQL SERVER2000使用AWE进行内存优化
    使用Power Designer正反向数据库及生成设计报告
    使用SVN+CruiseControl+ANT实现持续集成之二环境搭建和配置介绍
    使用SVN+CruiseControl+ANT实现持续集成之三构建操作及监视
    【排序】排序算法之分配排序
    [Cocoa]自定义TableViewCell实现圆角/渐变色TableView
    [Cocoa]XCode 3.2 常用快捷键
    [Cocoa]实现了一套自定义动画库
    Vim 使用入门快捷键
    [Cocoa] iPhone/iPad 时区转换
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5924434.html
Copyright © 2020-2023  润新知