精华内容
下载资源
问答
  • 2022-03-25 08:49:39

    1、首先需要在maven工程下的resources文件夹下添加文件
    2、通过右边代码获取路径String fileName = dataPreProcess.class.getClassLoader().getResource(“char_to_id.txt”).getPath();

    更多相关内容
  • Java 开发中我们经常要获取文件的路径,比如读取配置文件等等。今天我们就关于文件的路径和如何读取文件简单地探讨一下。 2. 文件的路径 文件的路径通常有 相对路径 与 绝对路径。 2.1 相对路径 以当前文件为基准...
  • Java获取相对路径文件

    千次阅读 2021-10-11 17:03:20
    class.getResourceAsStream("")获得的是相对路径 class.getClassLoader().getResourceAsStream("")加载器获得是绝对路径 Class.getResourceAsStream(String path) : (1)不以 “/” 开头时,默认是从此类所在的包...

    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"));
    
    展开全文
  • 主要介绍了java区分绝对路径和相对路径的方法,实例分析了java针对路径操作的相关技巧,需要的朋友可以参考下
  • Java相对路径读取文件

    千次阅读 2021-02-12 15:19:51
    不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的。项目的文件夹结构:repathtest├─src│└─com│└─lavasoft...

    不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的。

    项目的文件夹结构:

    repathtest

    ├─src

    │    └─com

    │            └─lavasoft

    │                    ├─test

    │                    └─res

    ├─doc

    sun.jpg

    1、在Java开发工具的project中使用相对路径

    在project中,相对路径的根目录是project的根文件夹,在此就是repathtest文件夹了。

    创建文件的写法是:

    File f = new File("src/com/lavasoft/res/a.txt");

    File f = new File("doc/b.txt");

    注意:

    路径不以“/”开头;

    脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此,但我见到的都是这样的。

    2、通过CLASSPATH读取包内文件

    读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:

    InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");

    有了字节流,就能读取到文件内容了。

    注意:

    这里必须以“/”开头;

    3、看看完整的测试代码

    package com.lavasoft.test;

    import java.io.*;

    /**

    * Java读取相对路径的文件

    *

    * @author leizhimin 2010-1-15 10:59:43

    */

    public class ReadFile {

    public static void main(String[] args) {

    readTextA_ByClassPath();

    readTextA_ByProjectRelativePath();

    readTextB_ByProjectRelativePath();

    }

    /**

    * 通过工程相对路径读取(包内)文件,注意不以“/”开头

    */

    public static void readTextA_ByProjectRelativePath() {

    System.out.println("-----------------readTextA_ByProjectRelativePath---------------------");

    File f = new File("src/com/lavasoft/res/a.txt");

    String a = file2String(f, "GBK");

    System.out.println(a);

    }

    /**

    * 通过工程相对路径读取(包外)文件,注意不以“/”开头

    */

    public static void readTextB_ByProjectRelativePath() {

    System.out.println("-----------------readTextB_ByProjectRelativePath---------------------");

    File f = new File("doc/b.txt");

    String b = file2String(f, "GBK");

    System.out.println(b);

    }

    /**

    * 通过CLASSPATH读取包内文件,注意以“/”开头

    */

    public static void readTextA_ByClassPath() {

    System.out.println("-----------------readTextA_ByClassPath---------------------");

    InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");

    String a = stream2String(in, "GBK");

    System.out.println(a);

    }

    /**

    * 文件转换为字符串

    *

    * @param f             文件

    * @param charset 文件的字符集

    * @return 文件内容

    */

    public static String file2String(File f, String charset) {

    String result = null;

    try {

    result = stream2String(new FileInputStream(f), charset);

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    }

    return result;

    }

    /**

    * 文件转换为字符串

    *

    * @param in            字节流

    * @param charset 文件的字符集

    * @return 文件内容

    */

    public static String stream2String(InputStream in, String charset) {

    StringBuffer sb = new StringBuffer();

    try {

    Reader r = new InputStreamReader(in, charset);

    int length = 0;

    for (char[] c = new char[1024]; (length = r.read(c)) != -1;) {

    sb.append(c, 0, length);

    }

    r.close();

    } catch (UnsupportedEncodingException e) {

    e.printStackTrace();

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

    return sb.toString();

    }

    }

    (代码写得粗糙,异常没做认真处理)

    运行结果:

    -----------------readTextA_ByClassPath---------------------

    aaaaaaaaa

    sssssssss

    -----------------readTextA_ByProjectRelativePath---------------------

    aaaaaaaaa

    sssssssss

    -----------------readTextB_ByProjectRelativePath---------------------

    bbbbbbbbbbb

    Process finished with exit code 0

    这是通过IDEA开发工具运行的,结果没问题,如果换成控制台执行,那么使用了项目相对路径的读取方式会失败,原因是,此时已经脱离了项目的开发环境,-----这个问题常常困扰着一些菜鸟,代码在开发工具好好的,发布后执行就失败了!

    下面我截个图:

    201001151263527205734.png

    5、获取CLASSPATH下文件的绝对路径

    当使用相对路径写入文件时候,就需要用到绝对路径。下面是个例子:

    package com.lavasoft;

    import java.io.File;

    /**

    * CLASSPATH文件的绝对路径获取测试

    *

    * @author leizhimin 2010-1-18 9:33:02

    */

    public class Test {

    //classpath的文件路径

    private static String cp = "/com/lavasoft/cfg/syscfg.properties";

    public static void main(String[] args) {

    //当前类的绝对路径

    System.out.println(Test.class.getResource("/").getFile());

    //指定CLASSPATH文件的绝对路径

    System.out.println(Test.class.getResource(cp).getFile());

    //指定CLASSPATH文件的绝对路径

    File f = new File(Test.class.getResource(cp).getFile());

    System.out.println(f.getPath());

    }

    }

    输出:

    /D:/projects/bbt/code/cdn/planrpt/out/production/planrpt/

    /D:/projects/bbt/code/cdn/planrpt/out/production/planrpt/com/lavasoft/cfg/syscfg.properties

    D:\projects\bbt\code\cdn\planrpt\out\production\planrpt\com\lavasoft\cfg\syscfg.properties

    Process finished with exit code 0

    总结

    使用工程相对路径是靠不住的。

    使用CLASSPATH路径是可靠的。

    对于程序要读取的文件,尽可能放到CLASSPATH下,这样就能保证在开发和发布时候均正常读取。

    -----------------------

    推荐资源:

    展开全文
  • 今天小编就为大家分享一篇浅谈java文件的读取File、以及相对路径的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 现有如下项目结构: ...可手动设置。无展开项时,默认包名折叠。 带码规范:代码中用相对地址 " / ",以保证代码...path是以.class文件为目标的相对路径。 Class对象的生成方式如下: Class.forName(“类名字符串”)

    现有如下项目结构:
    在这里插入图片描述

    注意:cn.edu.test 中的小数点表示包名的分隔,这种是eclipse中的包名折叠显示方式。可手动设置。无展开项时,默认包名折叠。

    带码规范:代码中用相对地址 " / ",以保证代码的可移植性,而避免使用绝对地址 " \\ " 。

    前言扩展

    TestClass .class.getResource(String path): 获取资源文件路径。path是以.class文件为目标的相对路径。

    Class对象的生成方式如下:

    1. Class.forName(“类名字符串”) (注意:类名字符串必须是全称,包名+类名)
    2. 类名.class
    3. 实例对象.getClass()

    相对路径测试代码

    package cn.edu.test;
    
    public class TestClass {
    
         public static void main(String[] args) {
        	 // 打印class资源文件路径
        	 System.out.println(TestClass.class.getResource(""));
        	 System.out.println(TestClass.class.getResource("./"));
        	 System.out.println(TestClass.class.getResource("../"));
             System.out.println(TestClass.class.getResource("/"));
        }
    }
    

    输出

    file:/E:/java-workspace/Test/bin/cn/edu/test/
    file:/E:/java-workspace/Test/bin/cn/edu/test/
    file:/E:/java-workspace/Test/bin/cn/edu/
    file:/E:/java-workspace/Test/bin/
    

    说明

    """./" 表示当前目录
    "../" 表示上一级目录
    "/" 表示根目录。根目录为:项目src资源文件目录,也是.class字节码文件目录,或者说工程项目文件下的bin目录。
    

    相对地址符号混用测试代码

    package cn.edu.test;
    
    public class TestClass {
    
         public static void main(String[] args) {
        	 
        	 System.out.println(TestClass.class.getResource("././"));
        	 System.out.println(TestClass.class.getResource(".././"));
        	 System.out.println(TestClass.class.getResource("./../"));
        	 System.out.println(TestClass.class.getResource("../../"));
        	 System.out.println(TestClass.class.getResource("/./"));
        }
    }
    

    输出

    file:/E:/java-workspace/Test/bin/cn/edu/test/
    file:/E:/java-workspace/Test/bin/cn/edu/
    file:/E:/java-workspace/Test/bin/cn/edu/
    file:/E:/java-workspace/Test/bin/cn/
    file:/E:/java-workspace/Test/bin/
    

    说明

    "./"  "../"  "/"  可混用。
    
    展开全文
  • 下面的源码中有不错的解决中文路径的方法:package com.wbtask;...public class UrlUtil {/*** 取得当前类所在的文件*@paramclazz*@return*/public static File getClassFile(Class clazz){URL path = clazz....
  • Java获取项目相对路径的方法

    千次阅读 2020-03-26 17:31:00
    String rootPath= System.getProperty("user.dir") 这样就获取到了项目的根目录。 上面那种方式还得手动拼接,还可以通过下面方式直接获取 //这里在项目下面新建了一个... //打印出相对路径 System.out.print...
  • 转自:http://wwwdd2315.blog.163.com/blog/static/66661889201091953350298/在JAVA文件获取该项目的相对路径1.基本概念的理解绝对路径:绝对路径就是你主页上的文件的完整URL或文件目录在硬盘上的真正的路径,它...
  • 1.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,...相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录。...
  • JAVA文件获取该项目的相对路径

    千次阅读 2021-02-26 10:09:23
    1.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,...相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录。...
  • Java 获得resource相对路径

    千次阅读 2021-09-27 21:56:14
    //当前服务执行的路径:Z:\workspace\license String path = System.getProperty("user.dir"); //没有找到直接得到resources路径的方法,我是直接加了对应路径,有找到的请留言抬一手,谢谢 //tempPath = System....
  • 1.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL...相对路径:相对与某个基准目录的路径.包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录.和物...
  • public class DBConn {public static String erro;private static Context initCtx = null;private static ComboPooledDataSource ds = null;//private static ComboPooledDataSource dataSource;...
  • 相对路径和绝对路径的区别在HTML里只要涉及文件的地方(如超级链接、图片等)就会涉及绝对路径与相对路径的概念。1.绝对路径绝对路径是指文件在硬盘上真正存在的路径。例如“bg.jpg”这个图片是存放在硬盘的“E:\book\...
  • 1.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,...相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录。...
  • //不推荐使用获取工程的根路径 (2)、request.getRealPath(request.getRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用 (3)、request.getSession().getServletContext().getRealPath...
  • java web中File的相对路径与绝对路径总结,用于在运行时获取配置文件、动态加载对象等
  • java中如何使用相对路径读取文件

    千次阅读 2021-03-03 14:07:49
    java中使用相对路径读取文件的方法:1、使用文件【File file = new File(“src/test.txt”)】方法;2、使用类的相对路径;3、使用当前线程的类加载器;4、读取web工程下的文件。【相关学习推荐:java中使用相对路径...
  • 下面的corejava项目下,labs-v2ch02模块下,有4个文件,1.properties、2.properties、3.properties、4.properties。 当我们需要使用这4个文件的时候,怎样创建文件对象呢? 2. 基本知识 (1) 不同的操作系统,文件的...
  • 获取Java文件路径

    2021-02-26 12:54:48
    1.如何获得当前文件路径常用:字符串类型:System.getProperty("user.dir");综合:package com.zcjl.test.base;import java.io.File;public class Test {public static void main(String[] args) throws Exception {...
  • 主要介绍了springboot如何获取相对路径文件夹下静态资源的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 145,090
精华内容 58,036
关键字:

java获取文件相对路径

java 订阅