Java io流文件读取和写入

Java io流文件读取和写入Javaio流操作demo类1.读取操作/***@authorlxw*@date2020/6/24*@desc获取文件输入流,这里读入内存中*@param[fileName]*@returnbyte[]**/publicbyte[]readPdfFile(StringfileName)throwsException{InputStreamin=null;

大家好,又见面了,我是你们的朋友全栈君。

Java io 流操作demo类

1.读取操作

 /**
     *@author lxw
     *@date 2020/6/24
     *@desc 获取文件输入流,这里读入内存中
     *@param [fileName]
     *@return byte[]
    **/
    public byte[] readPdfFile(String fileName) throws Exception{
        InputStream in = null;
        byte[] bytesRel;
        try {
            //读取Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH路径下文件名位fileName的文件
            File f = new File(Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH+fileName);
            in = new FileInputStream(f);
            //in.available 只适合于读取本地文件时判断流中字节数,不适合网络中的流数据大小判定
            bytesRel = new byte[ in.available()];
            in.read(bytesRel);
        } catch (IOException e) {
          log.error("读取文件{}失败!"+Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH+fileName);
          throw new BizException(IfspRespCode.RESP_ERROR,"读取pdf文件失败!");
        }finally {
            if (in != null){
                try {
                    in.close();
                } catch (IOException e) {
                    log.error("输入流关闭失败!原因:{}",e.getMessage());
                }
            }
        }
        return  bytesRel;
    }

2.写文件

 /**
     *@author lxw
     *@date 2020/6/24
     *@desc 写文件 如果想提高效率,可以使用缓冲流
     *@param [pdfByte, fileName]
     *@return void
    **/
    public void writePdfFile(byte[] pdfByte,String fileName) throws Exception{
        //检查文件是否已经存在,存在删除
        checkFIleExit(fileName,Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH);
        OutputStream os = null;
        try {
            os = new FileOutputStream(Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH+fileName);
            os.write( pdfByte ) ;
            os.flush() ;
        } catch (IOException e) {
            log.error("写入文件{}失败!"+Constants.PDF_CREATE_AND_SIGN.PDF_FILE_PATH+fileName);
        }finally {
            try {
                if (os!=null)  os.close();
            } catch (IOException e) {
                log.error("输入流关闭失败!原因:{}",e.getMessage());
            }
        }
    }


 /**
     *@author lxw
     *@date 2020/6/23
     *@desc 检查文件是否存在,存在就删除掉
     *@param [fileName, path]
     *@return void
    **/
    public void checkFIleExit(String fileName,String path){
        log.info("checkFIleExit方法入参:fileName:{},path:{}",fileName,path);
        File file = new File(path+fileName);
        if (file.exists()){
            file.delete();
        }
    }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139697.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android屏幕手写签名的实现-详细篇

    Android屏幕手写签名的实现-详细篇

    2021年3月12日
  • intellij idea2021激活码(JetBrains全家桶)[通俗易懂]

    (intellij idea2021激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlBCEBXQ3A4G-eyJsa…

    2022年3月22日
  • 海思hi3516ev100开发板_海思V200

    海思hi3516ev100开发板_海思V2001安装ubunu14我的ubuntu14如下#uname-aLinuxubuntu4.4.0-142-generic#168~14.04.1-UbuntuSMPSatJan1911:26:28UTC2019x86_64x86_64x86_64GNU/Linux2软件包安装步骤1.配置默认使用bash执行sudodpkg-recon…

    2022年9月23日
  • asp.net RenderControl

    asp.net RenderControl//usingSystem.IO;//usingSystem.Web;//usingSystem.Web.UI;//usingSystem.Web.UI.HtmlControls;protectedvoidPage_Load(objectsender

    2022年7月24日
  • windows版mysql8.0安装详解

    windows版mysql8.0安装详解windows版mysql8.0安装详解准备去下载一个本地mysql服务器时,突然发现mysql从5.7瞬间升级为8.0了,那还等什么,直接下载下来玩玩先.下载地址:https://dev.mysql.com/downloads/mysql/下载完成后将其解压到自定义目录下,我所有的工具都保存在D:\tools,解压完成后会看见以下目录:随后…

    2022年5月4日
  • PS磨皮神器来了,一键修出美美的自己! Portraiture(附带安装教程)

    PS磨皮神器来了,一键修出美美的自己! Portraiture(附带安装教程)后期修图中有一个非常关键而且不可或缺的步骤,那就是磨皮磨皮的方法有很多种但最方便快捷就能达到大片级效果的方法莫过于使用磨皮插件了但是目前市面上磨皮插件众多该如何选择呢?经过多次磨皮效果对比评选出了最方便用户覆盖率最高的磨皮插件Portraiture磨皮插件支持PS2015-2021版本WIN&MAC系统皆可兼容含独家安装教程+使用教程哦Portraiture是一款PS磨皮滤镜,减少了人工选择图像区域的重复劳动。它能智能地对图.

    2022年7月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号