java获取项目文件绝对路径

2023-05-16

该方法是先根据指定目录创建文件目录后,再获取起绝对路径,可先在指定目录中放入指定文件,这样就可以直接获取起绝对路径

public static void main(String[] args) {
       String filepath = getUploadResource(fileName);
    }


    public String getUploadResource(String fileName) {
        //返回读取指定资源的输入流
        InputStream is = this.getClass().getResourceAsStream("/abc/" + fileName);

        //若文件已存在,则返回的filePath中含有"EXIST",则不需再重写文件
        String filePath = createFile(fileName);

        //文件不存在,则创建流输入默认数据到新文件
        if (!filePath.contains("EXIST")) {
            File file = new File(filePath);
            inputStreamToFile(is, file);
            return filePath;
        }
        return filePath.substring(5);
    }
    public String createFile(String filename) {
        String path = System.getProperty("user.dir");
        //create folder
        String dirPath = path + File.separator + "abc";
        File dir = new File(dirPath);
        dir.mkdirs();

        //create file
        String filePath = dirPath + File.separator + filename;
        File file = new File(filePath);
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return filePath;
        }
        return "EXIST" + filePath;
    }

    public void inputStreamToFile(InputStream ins, File file) {
        OutputStream os = null;
        try {
            os = new FileOutputStream(file);

            int bytesRead = 0;
            byte[] buffer = new byte[8192];
            while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
                os.write(buffer, 0, bytesRead);
            }
            os.close();
            ins.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java获取项目文件绝对路径 的相关文章

随机推荐

  • Python 报错:unsupported operand type(s) for +: ‘dict_items‘ and ‘dict_items‘

    因为在python3中dict items 返回的是一个对象 xff0c 不能进行 43 操作 xff0c 因此报错
  • Java计算平方根

    Java基础 xff0c 对数值的处理 xff0c 很重要的细节操作 标题1376 计算平方根 Time Limit 1 Sec Memory Limit 128 MB Description 输入一个整数 xff0c 计算平方根并输出 I
  • 建造者模式(设计模式详解)

    建造者模式 描述特点实现Http请求实体建造者指导者客户端 使用场景 描述 建造者模式是一种创建型设计模式 xff0c 它允许您创建复杂的对象 xff0c 而无需直接指定它们的具体类型 它通过将对象的构造过程分解为多个简单的步骤 xff0c
  • CSS之选择器(一)普通选择器

    1 CSS选择器概述 通过选择器可以选定页面中的指定元素 xff0c 对HTML页面中的元素实现一对一 一对多或者多对一的控制 HTML页面中的元素都是通过CSS选择器进行控制的 2 CSS选择器 1 一般选择器 一般选择器 选择器示例示例
  • vs code写python代码时遇到蓝色波浪线“word“: Unknown word.cSpell[1,1]解决方法

    vs code写python代码时遇到蓝色波浪线 34 word 34 Unknown word cSpell 1 1 解决方法 从上面的两张图片都出现有cSpell xff0c 这个单词其实是code spell checker扩展检查p
  • ubuntu 18.0.4以上版本系统内网双网口设置方法

    需求 xff1a 18以上版本系统与老版本有很大区别 xff0c 目前有线网卡用于SSH及本地内网连接 xff0c 无线用于外网连接 xff0c 用笔记本SecureCRT通过有线操作ubuntu设备 xff0c 而且还要保证Ubuntu设
  • 操作系统的概念、功能和目标

    大家都熟悉的操作系统 windowsAndroidiosmacoslinux 本节框架 xff1a 定义 xff1a 操作系统是指控制和管理整个计算机系统的硬件和软件资源 xff0c 并合理地组织调度计算机的工作和资源的分配 xff0c 以
  • SpringBoot整合FreeMarker

    一 FreeMarker简述 在线文档 xff1a http freemarker foofun cn FreeMarker 也是一款模板引擎技术 xff0c 它是一种基于模板和要改变的数据 xff0c 并用来生成输出文本 HTML网页 x
  • SpringMVC的执行流程

    前言 当你知道springMVC的执行流程的时候 xff0c 会达到是事半功倍的学习效果 SpringMVC执行流程 首先明确 xff1a SpringMVC的执行过程就是 xff1a 客户端或者浏览器发送请求到后端服务器 xff0c 后端
  • archLinux安装记录

    archLinux安装记录 基于wsl的arch 启用wsl 首先 xff0c 按Win 43 S搜索启用或关闭Windows功能 xff08 Turn Windows features on or off xff09 打开虚拟机平台和WS
  • mac风格的windows11

    结果 工具下载 链接 xff1a https pan baidu com s 1bVkGI2FZ1Y6tziRMFdP3fw 提取码 xff1a MACC windows11微软官网纯镜像 链接 xff1a https pan baidu
  • AD学习问题记录(四):AD21布线时如何更改线宽

    目录 问题 xff1a 布线时发现线比需要的细解决 xff1a 更改规则结果总结 目前使用的版本是AD21 问题 xff1a 布线时发现线比需要的细 在PCB布线的时候 xff0c 发现线宽比较细 xff0c 于是在右侧的Propertie
  • FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ‘:app:compile...

    1 错误原因 笔记 在运行android的项目时报错 咱就是说代码不知道检查多少遍了 反正代码可以肯定的是没错的 于是就去网上搜索啊 按照提示在build gradle Module app 加了如下代码 android compileOp
  • Java实现二分搜索

    二分查找 xff1a 是一种算法 xff0c 其输入是一个有序的元素列表 xff08 必须是有序的 xff09 xff0c 如果查找的元素包含在列表中 xff0c 返回其索引 xff0c 否则返回负数 比如说有一个1 100的数字 xff0
  • Python if else条件语句你懂了吗?

    在 Python 中 xff0c 可以使用 if else 语句对条件进行判断 xff0c 然后根据不同的结果执行不同的代码 xff0c 这称为选择结构或者分支结构 Python 中的 if else 语句可以细分为三种形式 xff0c 分
  • 嵌入式学习系统里的ROM和RAM(转载)

    一个嵌入式项目在立项时 xff0c 其中有个重要的环节就是对系统所需的RAM和ROM用量进行评估 xff0c 在满足系统需求的前提下 xff0c 尽量降低硬件成本 xff0c 据说同等大小的RAM价格大概是ROM的6倍 大部分的资料都宣称程
  • 关于Mysql8.0.22服务无法启动问题

    关于Mysql8 0 22服务无法启动问题 1 官网下载 解压完成后 不存在data文件夹 也不要自己创建 后面会用命令生成 请往后看 2 创建my ini文件 xff08 一定要放在bin目录下 xff0c 不要放在mysql8 0 22
  • 查找Ubuntu中安装软件的位置

    查找Ubuntu中安装软件的位置 下面仅自我学习记录只做参考 xff0c 不可全信 通常使用ps e 找到软件的具体名字 xff0c 然后进行位置查找 自我记录 1 执行程序查看 对于有的程序没有效果 type 软件名 2 通过进程查看 p
  • Python爬虫:第三章 数据解析 xpath解析(12)

    第三章 数据解析 xpath 解析xpath 解析基础example1 爬取58二手房中的房源信息example2 解析下载图片数据example3 全国城市名称爬取 xpath 解析 xpath 解析基础 span class token
  • java获取项目文件绝对路径

    该方法是先根据指定目录创建文件目录后 xff0c 再获取起绝对路径 xff0c 可先在指定目录中放入指定文件 xff0c 这样就可以直接获取起绝对路径 span class token keyword public span span cl