前情提要本文中提供了九种方式获取资源目录下文件的方式。其中打印文件的方法如下:
/** * 根据文件路径读取文件内容* * @ param fileInPath * @ throws io exception */public static void getfile content(Object fileInPath)抛出io exception { buffered reader br=null;if(fileInPath==null){ return;} if(String的fileInPath实例){ br=new buffered reader(new File reader(new File((String)fileInPath)));} else if(InputStream的fileInPath实例){ br=new buffered reader(new InputStream reader((InputStream)fileInPath));}弦线;while ((line=br.readLine())!=null){ system。出去。println(line);} br。close();}方式一主要核心方法是使用获取资源和获取路径方法,这里的getResource(” “)里面是空字符串
公共void函数1(字符串文件名)抛出io异常{ String path=this。getclass().getClassLoader().getResource(” “).getPath();//注意getResource(” “)里面是空字符串System.out.println(路径);字符串文件路径=路径文件名;系统。出去。println(文件路径);getfile内容(文件路径);}方式二主要核心方法是使用获取资源和获取路径方法,直接通过获取资源(文件名)方法获取文件路径,注意如果是路径中带有中文一定要使用URLDecoder.decode解码。
/** * 直接通过文件名获取路径来获取路径* * @ param fileName * @ throws io exception */public void function 2(字符串文件名)抛出io异常{ String path=this。getclass().getClassLoader().获取资源(文件名)。getPath();//注意getResource(” “)里面是空字符串System.out.println(路径);字符串文件路径=URL解码器。解码(路径,‘UTF-8’);//如果路径中带有中文会被URLEncoder,因此这里需要解码系统。出去。println(文件路径);getfile内容(文件路径);}方式三直接通过文件名getFile()来获取文件。如果是文件路径的话产品模板和获取路径效果是一样的,如果是统一资源定位器路径的话获取路径是带有参数的路径。如下所示:
网址。getfile()=/pub/files/foobar。txt id=123456 URL。getpath()=/pub/files/foobar。文本文件(textfile)使用getFile()方式获取文件的代码如下:
/** * 直接通过文件名getFile()来获取* * @ param fileName * @ throws io exception */public void function 3(字符串文件名)抛出io异常{ String path=this。getclass().getClassLoader().获取资源(文件名)。getFile();//注意getResource(” “)里面是空字符串System.out.println(路径);字符串文件路径=URL解码器。解码(路径,‘UTF-8’);//如果路径中带有中文会被URLEncoder,因此这里需要解码系统。出去。println(文件路径);getfile内容(文件路径);}方式四(重要)直接使用getResourceAsStream方法获取流,上面的几种方式都需要获取文件路径,但是在跳羚中所有文件都在冲突包中,没有一个实际的路径,因此可以使用以下方式。
/** * 直接使用getResourceAsStream方法获取流*跳羚项目中需要使用此种方法,因为冲突包中没有一个实际的路径存放文件* * @ param fileName * @ throws io exception */public void function 4(字符串文件名)抛出io异常{ InputStream in=this。getclass().getClassLoader().getResourceAsStream(文件名);getfile内容(in);}方式五(重要)主要也是使用getResourceAsStream方法获取流,不使用getClassLoader可以使用getResourceAsStream(‘/配置测试. txt’)直接从资源根路径下获取,跳靴中所有文件都在冲突包中,没有一个实际的路径,因此可以使用以下方式。
/** * 直接使用getResourceAsStream方法获取流* 如果不使用getClassLoader,可以使用getResourceAsStream(‘/配置测试. txt’)直接从资源根路径下获取* * @ param fileName * @ throws io exception */public void function 5(字符串文件名)抛出io异常{ InputStream in=this。getclass().getResourceAsStream(‘/’ fileName);getfile内容(in);}方式六(重要)通过ClassPathResource类获取文件流,跳靴中所有文件都在冲突包中,没有一个实际的路径,因此可以使用以下方式。
/** * 通过ClassPathResource类获取,建议跳羚中使用*跳羚项目中需要使用此种方法,因为冲突包中没有一个实际的路径存放文件* * @ param fileName * @ throws io exception */public void函数6(String fileName)throws io exception { class path resource class path resource=new class path resource(fileName);InputStream InputStream=类路径资源。getinputstream();getfile内容(inputStream);}方式七通过绝对路径获取项目中文件的位置,只是本地绝对路径,不能用于服务器获取。
/** * 通过绝对路径获取项目中文件的位置(不能用于服务器)* @ param fileName * @抛出io异常*/public void function 7(String fileName)抛出io异常{ String root path=system。getproperty(‘用户。dir’);//e : \ WorkSpace \ Git \ spring-framework-learning-example String file path=root path ‘ \ \ chapter-2-spring MVC-quick start \ \ src \ \ main \ \ resources \ \ ‘文件名;getfile内容(文件路径);}方式八通过新文件(“”)获取当前的绝对路径,只是本地绝对路径,不能用于服务器获取。
/** * 通过绝对路径获取项目中文件的位置(不能用于服务器)* @ param fileName * @ throws io exception */public void function 8(字符串文件名)抛出IOException { //参数为空文件目录=新文件(“”);//规范路径:getCanonicalPath()方法返回绝对路径,会把.\ 、\这样的符号解析掉字符串根规范路径=目录。get canonical path();//绝对路径:getAbsolutePath()方法返回文件的绝对路径,如果构造的时候是全路径就直接返回全路径,如果构造时是相对路径,就返回当前目录的路径构造文件对象时的路径string root absolute path=directory。getabsolutepath();系统。出去。println(根规范路径);系统。出去。println(根绝对路径);字符串文件路径=根规范路径’ \ \ chapter-2-spring MVC-quick start \ \ src \ \ main \ \ resources \ \ ‘文件名;getfile内容(文件路径);}方式九主要是通过设置环境变量,将文件放在环境变量中,原理也是通过绝对路径获取。示例中我设置了一个环境变量:TEST _ ROOT=e : \ \ WorkSpace \ \ Git \ \ spring-framework-learning-example
系统。getenv(‘ TEST _ ROOT ‘);System.getProperty(‘TEST_ROOT ‘)通过设置环境变量的方式,然后通过绝对路径获取文件
/** * 通过绝对路径获取项目中文件的位置* * @ param fileName * @ throws io exception */public void函数9(字符串文件名)引发io异常{ system。设置属性(‘ TEST _ ROOT ‘,’ e : \ \ WorkSpace \ \ Git \ \ spring-framework-learning-example ‘);//参数为空字符串根路径=系统。getproperty(‘ TEST _ ROOT ‘);系统。出去。println(根路径);string file path=root path ‘ \ \ chapter-2-spring MVC-quick start \ \ src \ \ main \ \ resources \ \ ‘ fileName;getfile内容(文件路径);}来源:博客。csdn。net/u 011047968/文章/详情/107311462
暂无讨论,说说你的看法吧