Java如何获取相对路径文件

 更新时间:2023年06月15日 10:39:01   作者:蓝天⊙白云  
这篇文章主要介绍了Java如何获取相对路径文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java获取相对路径文件

1. 文件在src下

class.getResourceAsStream(“”)获得的是相对路径
class.getClassLoader().getResourceAsStream(“”)加载器获得是绝对路径

Class.getResourceAsStream(String path)

  • (1)不以 “/” 开头时,默认是从此类所在的包下取资源。
  • (2)以**“/”**开头,则是从ClassPath(Src根目录)根下获取。

Class.getClassLoader.getResourceAsStream(String path)

  • 默认则是从ClassPath根下获取,path不能以’/'开头。

2. 文件在src同级目录下

InputStream in = new BufferedInputStream(new FileInputStream("./test/aaa.txt"));

1.FileTest.class.getResource("")

得到的是当前类FileTest.class文件的URI目录。不包括自己!

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

2.FileTest.class.getResource("/")

得到的是当前的classpath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

3.Thread.currentThread().getContextClassLoader().getResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

4.FileTest.class.getClassLoader().getResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

5.ClassLoader.getSystemResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。

Java获取文件大小(文件、路径)

文件大小(路径)

/**
     * 文件大小--路径
     *
     * @return
     */
    public static long getFileLength(String downloadUrl) {
        if(downloadUrl == null || "".equals(downloadUrl)){
            return 0L ;
        }
        URL url = null;
        try {
            url = new URL(downloadUrl);
        } catch (MalformedURLException e) {
            e.printStackTrace();
            return 0L;
        }
        HttpURLConnection conn = null;
        try {
            conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("HEAD");
            conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows 7; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36 YNoteCef/5.8.0.1 (Windows)");
            return (long) conn.getContentLength();
        } catch (IOException e) {
            return 0L;
        } finally {
            conn.disconnect();
        }
    }

文件大小(文件)

/**
     * 文件大小--文件
     *
     * @return
     */
    public static int getFileSize(File file) {
        int fileSize = 0;
        FileInputStream fis = null;
        try {
            if (file.exists() && file.isFile()) {
                String fileName = file.getName();
                fis = new FileInputStream(file);
                fileSize = fis.available();
                System.out.println("文件" + fileName + "的大小是:" + fis.available() + "\n");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (null != fis) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return fileSize;
    }

测试下

public static void main(String[] args) {
       File file = new File("C:\\Users\\xuzh\\Desktop\\6f3c0052d684451a92e7fb5b55eda9fd.jpg");
        getFileSize(file);
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring HttpMessageConverter的作用及替换解析

    Spring HttpMessageConverter的作用及替换解析

    这篇文章主要介绍了Spring HttpMessageConverter的作用及替换解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 详解Java的闭包

    详解Java的闭包

    这篇文章主要介绍了详解Java的闭包,作者从Lambda和默认方法等重要特性深入讲解,极力推荐!需要的朋友可以参考下
    2015-07-07
  • 详谈Java中的Object、T(泛型)、?区别

    详谈Java中的Object、T(泛型)、?区别

    下面小编就为大家带来一篇详谈Java中的Object、T(泛型)、?区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • java 格式化输出数字的方法

    java 格式化输出数字的方法

    在实际工作中,常常需要设定数字的输出格式,如以百分比的形式输出,或者设定小数位数等,现稍微总结如下
    2014-01-01
  • Java NIO深入分析

    Java NIO深入分析

    本篇技术文章主要对Java新api(New IO)做了详细深入的讲解,有助于程序对NIO有更加深入的理解。
    2017-12-12
  • Java分析讲解序列化与字典功能的序列化

    Java分析讲解序列化与字典功能的序列化

    在项目开发地过程中经常会用到字典存储某些可配置的值,但相应的也会给开发带来复杂度,比如数据库存储的值为字典值:0,1,2,3这种类型的值,但是前端页面却需要展示为 启动、禁用、删除 等中文状态,下面我们来看两种解决方案
    2022-06-06
  • 一篇文章带你搞定JAVA注解

    一篇文章带你搞定JAVA注解

    这篇文章主要介绍了详解Java注解的实现与使用方法的相关资料,希望通过本文大家能够理解掌握Java注解的知识,需要的朋友可以参考下
    2021-07-07
  • 一篇文章带你了解Maven的坐标概念以及依赖管理

    一篇文章带你了解Maven的坐标概念以及依赖管理

    这篇文章主要为大家介绍了Maven的坐标概念以及依赖管理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)

    解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)

    这篇文章主要介绍了解决java编译错误的相关资料,主要解决 程序包javax.servlet不存在javax.servlet.*的问题,需要的朋友可以参考下
    2017-08-08
  • Java Swing编写一个简单的计算器软件

    Java Swing编写一个简单的计算器软件

    大家好,本篇文章主要讲的是Java Swing编写一个简单的计算器软件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论