• 字节流


    |-- 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(); 

            } 

        } 

     

  • 相关阅读:
    linux stat 命令查看文件信息
    亟需为个人信息安全“保驾护航”
    CISSP认证考试CBK知识点变更分析
    CISM国际注册信息安全经理认证知识体系
    (ISC)² CISSP,SSCP官方知识域更新常见问题解答
    SQL函数大全——实例 yangan
    ArcGIS Server 体系结构(转) yangan
    DevExpress组件之——PopupMenu组件 yangan
    Visual Studio 2008 中工具箱丢失,解决方法 yangan
    Word文档内容无法选中以及点击鼠标无反应的问题(PowerDesigner 12.5 导致) yangan
  • 原文地址:https://www.cnblogs.com/yang-hao/p/6078279.html
Copyright © 2020-2023  润新知