• 字节流


    |-- InputStream(读)

    |-- OutputStream(写)

     

    由于字节是二进制数据,所以字节流可以操作任何类型的数据,值得注意的是字符流使用的是字符数组char[]而字节流使用的是字节数组byte[]。下面来看一个字节流读写文件的简单例子。

    清单7,使用字节流读写文本文件代码   

    private static void test5(){ 

        FileOutputStream fos=null; 

        try{ 

            fos=new FileOutputStream("D:/test.txt"); 

            fos.write(0010);//写入二进制数据 

            fos.flush(); 

        }catch(IOException e){ 

             

        }finally{ 

            try{ 

                fos.close(); 

            }catch(IOException ex){ 

                 

            } 

        } 

        FileInputStream fis=null; 

        try{ 

            fis=new FileInputStream("D:/test.txt"); 

            //fis.available()是获取关联文件的字节数,即test.txt的字节数 

            //这样创建的数组大小就和文件大小刚好相等 

            //这样做的缺点就是文件过大时,可能超出jvm的内存空间,从而造成内存溢出 

            byte[] buf=new byte[fis.available()]; 

            fis.read(buf); 

            System.out.println(new String(buf)); 

        }catch(IOException e){ 

             

        }finally{ 

            try{ 

                fos.close(); 

            }catch(IOException ex){ 

                 

            } 

        } 

     

    清单8,使用缓冲区对一张图片进行复制代码   

    private static void test6(){ 

        BufferedOutputStream bos=null; 

        BufferedInputStream bis=null; 

        try{ 

            //前面已经说过了,缓冲对象是根据具体的流对象创建的,所以必须要有流对象  

            bis=new BufferedInputStream(new FileInputStream("E:\images\wo\1.jpg")); 

            //写入目标地址 

            bos=new BufferedOutputStream(new FileOutputStream("E:\test.jpg")); 

            byte[] buf=new byte[1024]; 

            while((bis.read(buf))!=-1){ 

                bos.write(buf); 

            } 

            bos.flush(); 

        }catch(IOException e){ 

            e.toString(); 

        }finally{ 

            try{ 

                if(bos!=null){ 

                    bos.close(); 

                } 

                if(bis!=null){ 

                    bis.close(); 

                } 

            }catch(IOException ex){ 

                ex.toString(); 

            } 

        } 

     

  • 相关阅读:
    (转)3D模板阴影原理
    (转)c++模版:包含模型、显式实例化、分离模型
    (转)C++内存管理
    (转)Ogre 安装 配置 问题
    (转)详细解说hash_map
    (转)STL中map用法详解
    VB Format函数
    转 python内置正则表达式(re)模块官方文档简要中文版
    《编程的奥秘》读后感
    python基础(5)正则表达式
  • 原文地址:https://www.cnblogs.com/yang-hao/p/6078279.html
Copyright © 2020-2023  润新知