Java中获取文件路径的几种方式
Java获取项目路径的多种方式
Java获取项⽬路径的多种⽅式在正常开发的情况下,我们经常会遇到:需要获取指定⽂件路径,虽然我知道项⽬在本机的路径,⼀旦打包发布了,再根据绝对路径获取指定⽂件,肯定是获取不到的。
这时候就需要⽤java给我们提供的⼀些获取相对路径⽅法了。
@Testpublic void url() throws IOException {// 获取当前项⽬下路径:⽅式⼀File file = new File("");String filePath = file.getCanonicalPath();// 输出:D:\MyCode\log\log4j2-javaSystem.out.println(filePath);// 获取当前项⽬下路径:⽅式⼆// 输出:D:\MyCode\log\log4j2-javaSystem.out.println(System.getProperty("user.dir"));// 获取类加载的根路径String path = this.getClass().getResource("/").getPath().substring(1);// 输出:D:/MyCode/log/log4j2-java/target/classes/System.out.println(path);// 获取当前类的所在⼯程路径String path1 = this.getClass().getResource("").getPath().substring(1);// 输出:D:/MyCode/log/log4j2-java/target/classes/com/gzl/cn/System.out.println(path1);// 获取类加载指定⽂件或者⽂件夹路径String path2 = this.getClass().getResource("/data/DataConvert.dll").getPath().substring(1);System.out.println(path2);//获取所有的类路径包括jar包的路径System.out.println(System.getProperty("java.class.path"));}这个是我的项⽬路径。
java获取项目的相对路径
java获取项目的相对路径以Java获取项目的相对路径在Java开发中,经常会遇到需要获取项目的相对路径的情况,例如读取配置文件、文件上传等操作。
获取项目的相对路径可以提高代码的可移植性,使得代码在不同环境下都能正常运行。
本文将介绍几种常用的方法来获取项目的相对路径。
方法一:使用System.getProperty()方法System.getProperty()方法可以获取系统的属性值,其中包括用户的当前工作目录(user.dir)。
通过这个属性值,我们可以获取项目的绝对路径。
接下来,我们可以通过对绝对路径进行处理,获取项目的相对路径。
```javaString absolutePath = System.getProperty("user.dir");String relativePath = absolutePath.replace("\\", "/");```上述代码中,我们首先获取了项目的绝对路径,然后将路径中的反斜杠转换为斜杠,从而得到了项目的相对路径。
方法二:使用Class.getResource()方法Class.getResource()方法可以获取类所在的路径,通过这个方法,我们可以获取到当前类的绝对路径。
接下来,我们可以通过对绝对路径进行处理,获取项目的相对路径。
```javaString absolutePath = MyClass.class.getResource("/").getPath();String relativePath = absolutePath.replaceFirst("/", "");```上述代码中,我们首先使用Class.getResource("/")方法获取到当前类的绝对路径,然后将路径中的第一个斜杠去掉,从而得到了项目的相对路径。
java 获取操作系统路径的方法
java 获取操作系统路径的方法Java是一种跨平台的编程语言,可以在不同的操作系统上运行。
有时候我们需要获取操作系统的路径,比如获取用户目录或临时文件目录等。
下面介绍几种获取操作系统路径的方法。
1. 使用System.getProperty()方法获取路径System.getProperty()方法可以获取系统属性,其中一些属性可以用来获取系统路径,比如:- user.home:获取用户目录,比如在Windows上是C:Users用户名,在Linux上是/home/用户名。
- java.io.tmpdir:获取临时文件目录,比如在Windows上是C:Users用户名AppDataLocalTemp,在Linux上是/tmp。
下面是获取用户目录和临时文件目录的示例代码:// 获取用户目录String userDir = System.getProperty('user.home');System.out.println('用户目录:' + userDir);// 获取临时文件目录String tempDir = System.getProperty('java.io.tmpdir'); System.out.println('临时文件目录:' + tempDir);2. 使用File类获取路径File类可以代表文件或目录,可以通过它来获取系统路径。
比如:- File.separator:获取文件分隔符,比如在Windows上是,在Linux上是/。
- File.listRoots():获取所有根目录,比如在Windows上是C:、D:等,在Linux上是/。
下面是获取文件分隔符和所有根目录的示例代码:// 获取文件分隔符String separator = File.separator;System.out.println('文件分隔符:' + separator);// 获取所有根目录File[] roots = File.listRoots();for (File root : roots) {System.out.println('根目录:' + root.getPath());}通过以上两种方法,我们可以获取操作系统路径,方便我们进行文件或目录的操作。
java获取类路径方法
java获取类路径方法在Java中,我们可以使用多种方法来获取类路径(class path),以便在运行时动态加载类和资源文件。
类路径是指JVM在寻找类和资源文件时所使用的路径,它可以包含目录、JAR文件和ZIP文件。
以下是几种常用的获取类路径的方法:1. 使用System.getProperty()方法通过调用System.getProperty("java.class.path")方法,我们可以获取到当前JVM的类路径。
这个方法返回一个字符串,其中包含了当前JVM的类路径。
例如:String classpath = System.getProperty("java.class.path");这种方法简单、方便,可以在程序中直接调用。
但是需要注意的是,这种方法获取的类路径是当前JVM的类路径,可能会受到运行环境的影响。
2. 使用ClassLoader的getSystemResource()方法ClassLoader是Java中用于加载类和资源的基本接口,它定义了一个getSystemResource(String name)方法,可以用来获取指定资源的URL。
通过这个方法,我们可以间接地获取到类路径。
例如:URL url = ClassLoader.getSystemResource("myfile.txt");这个方法通过ClassLoader的机制来获取类路径,它可以保证在不同的环境中都能正常工作。
但是它只能获取到指定资源的URL,而不是整个类路径。
3. 使用Class类的getResource()方法在Java中,每个类都有一个与之对应的Class对象,我们可以通过这个Class 对象来获取当前类的资源。
通过调用Class.getResource(String name)方法,我们可以获取到指定资源相对于当前类的路径。
例如:URL url = SomeClass.class.getResource("myfile.txt");这种方法和ClassLoader.getSystemResource()类似,都是通过类的加载器来获取资源的URL。
java中获取文件路径
java中获取文件路径获取Java文件路径1.如何获得当前文件路径常用:字符串类型:System.getProperty(“user.dir");综合:package .zcjl.test.base;import java.io.File;public class Test {public static void main(String[] args) throws Exception {System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));System.out.println(Test.class.getClassLoader().getResource(""));System.out.println(ClassLoader.getSystemResource(""));System.out.println(Test.class.getResource(""));System.out.println(Test.class.getResource("/"));System.out.println(new File("").getAbsolutePath());System.out.println(System.getProperty("user.dir"));}}2.Web服务中(1).WeblogicWebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:\bea\weblogic700.....那么,你的文件根路径就是c:\.所以,有两种方式能够让你访问你的服务器端的文件:a.使用绝对路径:比如将你的参数文件放在c:\yourconfig\yourconf.properties,直接使用new FileInputStream("yourconfig/yourconf.properties");b.使用相对路径:相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放在yourwebapp\yourconfig\yourconf.properties,这样使用:new FileInputStream("./yourconfig/yourconf.properties");这两种方式均可,自己选择。
java获取资源文件的几种方式
java获取资源⽂件的⼏种⽅式第⼀种采⽤class⽅式加载:public InputStream getResourceAsStream(String pathToConfigFile);举例:举个例⼦,在IntelliJ Idea中创建⼀个java⼯程,⽬录结构如下:该⼯程⾥有两个resources⽂件夹,⼀个位于davenkin⽂件夹下,⼀个直接位于src⽂件夹下。
第⼀个resources⽂件夹下有⼀个config.properties⽂件,其内容为:package davenkin;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class ResourceLoader{public static void main(String[] args) throws IOException{ResourceLoader resourceLoader = new ResourceLoader();resourceLoader.loadProperties1();}public void loadProperties1() throws IOException{InputStream input = null;try{input = Class.forName("davenkin.ResourceLoader").getResourceAsStream("/resources/config.properties");//also can be this way://input = this.getClass().getResourceAsStream("/resources/config.properties");} catch (ClassNotFoundException e){e.printStackTrace();}printProperties(input);}private void printProperties(InputStream input) throws IOException{Properties properties = new Properties();properties.load(input);System.out.println(properties.getProperty("name"));}}输出结果为第⼆个resources⽂件夹下config.properties的内容:ConfigUnderSrc原因在于(请注意ReourceLoader.java⽂件中的红⾊部分):我们给出的资源⽂件路径(/resources/config.properties)以"/"开头,即使⽤的是绝对定位⽅式,所以找到的是直接在classpath下的resources⽂件夹。
java获取文件内容的方法
java获取文件内容的方法【原创实用版3篇】目录(篇1)1.引言2.Java获取文件内容的方法3.方法比较与选择4.结论正文(篇1)一、引言Java 是一种广泛使用的编程语言,它提供了许多用于处理文件和流的功能。
在 Java 中,有多种方法可以获取文件内容,包括使用BufferedReader、Scanner 和 FileReader 等类。
本文将介绍这些方法及其应用场景。
二、Java获取文件内容的方法1.BufferedReader:BufferedReader 是 Java 中最常用的读取文本文件的类之一。
它提供了一个名为 readLine() 的方法,可以逐行读取文件内容。
示例代码如下:```javatry (BufferedReader br = new BufferedReader(newFileReader("file.txt"))) {String line;while ((line = br.readLine()) != null) {// 处理每一行内容}} catch (IOException e) {e.printStackTrace();}```2.Scanner:Scanner 类提供了更简洁的语法来读取输入,包括文件内容。
它使用空格、制表符等分隔符来解析输入,并将其转换为相应的数据类型。
示例代码如下:```javatry (Scanner scanner = new Scanner(new File("file.txt"))) { while (scanner.hasNextLine()) {String line = scanner.nextLine();// 处理每一行内容}} catch (FileNotFoundException e) {e.printStackTrace();}```3.FileReader:FileReader 类用于读取字符流,它返回一个字符数组,其中包含指定文件中的所有字符。
java 根据路径获取文件方法
java 根据路径获取文件方法Java是一种广泛应用于软件开发的高级编程语言。
在Java中,我们经常需要根据路径获取文件。
本文将介绍如何使用Java来实现这一功能,并提供一步一步的指导。
第一步:导入相关的Java类库要使用Java来获取文件,我们需要导入相关的Java类库。
在这个场景下,我们需要导入java.io类库中的File类。
在Java中,File类提供了一些方法来操作文件和目录。
要导入File类,我们可以在Java源文件的开头添加以下代码:javaimport java.io.File;第二步:创建File对象在Java中,要获取文件,我们需要先创建一个File对象。
File对象代表文件系统中的一个文件或目录。
我们可以使用其构造函数来创建一个File 对象,构造函数可以接受文件路径作为参数。
以下是一个创建File对象的示例代码:javaString path = "C:\\myFolder\\myFile.txt";File file = new File(path);在上面的示例中,我们创建了一个名为file的File对象,该对象代表了路径为C:\myFolder\myFile.txt的文件。
请注意,在Java中,文件路径使用双反斜杠(\)来表示文件分隔符。
第三步:检查文件是否存在在创建File对象后,我们可以使用其exists()方法来检查文件是否存在。
exists()方法返回一个布尔值,如果文件存在,则返回true,否则返回false。
以下是一个检查文件是否存在的示例代码:javaif (file.exists()) {System.out.println("文件存在");} else {System.out.println("文件不存在");}第四步:获取文件的绝对路径要获取文件的绝对路径,我们可以使用File对象的getAbsolutePath()方法。
关于java和web工程项目中各种路径的获取总结
关于java和web工程项目中各种路径的获取总结参考网络文章整理1. 获取web服务器项目的真实物理路径Java代码2. 相对路径的获得说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)Java代码上述相对路径中,java项目中的文件是相对于项目的根目录web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录\bin)3. 类加载目录的获得(即当运行时某一类时获得其装载目录)3.1. 通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)Java代码录位于src目录下)上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可3.2. 通用方法二(此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)InputStream is=Test1.class.getResourceAsStream("/test.txt");(test.txt文件的路径为项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)4. web项目根目录的获得(发布之后)4.1. 从servlet出发可建立一个servlet在其的init方法中写入如下语句Java代码(结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字) 如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")4.2. 从httpServletRequest出发Java代码结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\5. classpath的获取(在Eclipse中为获得src或者classes目录的路径)5.1. 方法一Java代码输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/5.2. 方法二Java代码输出:JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/ WEB-INF/classes/另外,如果想把文件放在某一包中,则可以通过以下方式获得到文件(先定位到该包的最后一级目录)egJava代码输出:JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classe s/jdom/(JdomParse为src目录下jdom包中的类)在jsp和class文件中调用的相对路径不同。
java获取文件路径的方法
java获取文件路径的方法
1、Java语言中获取文件路径的方法介绍
Java语言是当今比较流行的编程语言,它支持许多操作系统,并且可以处理一些文件操作相关的任务。
在Java语言中,可以通过一些类库和api来获取文件的位置及路径。
这些文件路径可以是系统文件,也可以是用户指定的文件。
2、Java中获取文件路径的几种方法
(1)getAbsolutePath()方法
这是Java语言中获取文件路径的一种常用方法,它可以获取文件或文件夹的绝对路径,例如:File file = new File("test.txt"),则调用
file.getAbsolutePath() 方法,可以得到该文件的绝对路径,形如:C:\Users\xxx\test.txt 。
(2)getPath()方法
getPath()方法与getAbsolutePath()方法类似,但也有些不同。
它可以获取文件的相对路径,即相对于当前
系统的路径。
它的返回结果如下:
(3)getCanonicalPath()方法
getCanonicalPath()方法是java.io.File类中的一个方法,它用于获取文件或目录的规范表示形式,它可以将传入参数以及存在于当前文件路径中的.和..表达式解析为绝对路径,它返回的绝对路径通常比
File.getAbsolutePath()返回的更短。
3、总结
以上就是Java语言中获取文件路径的几种方法简介,不同的方法可以根据实际需要来选择对应的函数来获取文件的路径信息。
不过,不管使用什么方法,它们都是借助于Java语言中大量提供的文件I/O类库和API,来实现操作系统文件路径获取的。
java 获取指定类型文件的方法
一、介绍在编程领域,经常会有需要获取指定类型的文件的需求,特别是在Java开发中。
Java作为一种面向对象的程序设计语言,提供了丰富的API和库,使得获取指定类型文件的操作变得相对简单。
本文将介绍Java中获取指定类型文件的方法,以及在实际项目开发中的应用。
二、使用File类的listFiles()方法Java中的File类提供了用于文件操作的大量方法,其中listFiles()方法可以获取指定目录下的所有文件和子目录。
我们可以结合文件过滤器来获取指定类型的文件。
1. 使用FilenameFilter过滤器我们可以实现一个FilenameFilter接口的实例,然后将其传递给listFiles()方法,以获得指定类型的文件列表。
以下为一个示例代码:```javaFile folder = new File("D:/documents");File[] files = folder.listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {return name.endsWith(".txt");}});```上述代码中,我们通过传递一个实现FilenameFilter接口的匿名类来过滤出所有以“.txt”结尾的文件。
2. 使用FileFilter过滤器除了FilenameFilter外,我们还可以使用FileFilter接口来实现文件过滤。
FileFilter接口只包含一个accept()方法,用于过滤文件。
以下为一个示例代码:```javaFile folder = new File("D:/documents");File[] files = folder.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {return pathname.getName().endsWith(".txt");}});上述代码中,我们通过传递一个实现FileFilter接口的匿名类来过滤出所有以“.txt”结尾的文件。
获取java项目的根目录-方法大全
获取java项目的根目录-方法大全一、相对路径的获得说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)String relativelyPath=System.getProperty("user.dir");上述相对路径中,java项目中的文件是相对于项目的根目录web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录\bin)二类加载目录的获得(即当运行时某一类时获得其装载目录)1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)InputStreamis=TestAction.class.getClassLoader().getResourceAsStream(" test.txt"); (test.txt文件的路径为项目名\src\test.txt;类TestPath所在包的第一级目录位于src目录下)上式中将TestPath,test.txt替换成对应成相应的类名和文件名字即可1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以"/'开头) InputStream is=Test1.class.getResourceAsStream("/test.txt");(test.txt文件的路径为项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)三 web项目根目录的获得(发布之后)1 从servlet出发可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)ServletContext s1=this.getServletContext();String temp=s1.getRealPath("/"); (关键)结果形如:F:\tomcat-6.0.36\webapps\test\(test为项目名字)如果是调用了s1.getRealPath("")则输出F:\tomcat-6.0.36\webapps\test(少了一个"\")2 从httpServletRequest出发(没有请求的话会抛空指针导常)Stringpath=request.getSession().getServletContext().getRealPath("/");结果形如: F:\tomcat-6.0.36\webapps\test\四 classpath的获取(在Eclipse中为获得src或者classes目录的路径),放在监听器,可以窗口启动获取路径方法一Thread.currentThread().getContextClassLoader().getResource("").getPat h()String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();System.out.println("path========" + path);输出:path========/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/<喎?/kf/ware/vc/" target="_blank"class="keylink">vcD4KPHAgYWxpZ249"left">方法二JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse 为src某一个包中的类,下同)eg:Stringp1=JdomParse.class.getClassLoader().getResource("").getPath();System.out.println("JdomParse.class.getClassLoader().getResource--"+p 1);输出:JdomParse.class.getClassLoader().getResource-/F:/tomcat-6.0.36/web apps/test/WEB-INF/classes/另外,如果想把文件放在某一包中,则可以通过以下方式获得到文件(先定位到该包的最后一级目录)eg String p2=JdomParse.class.getResource("").getPath();System.out.println("JdomParse.class.getResource---"+p2);输出:JdomParse.class.getResource--/F:/tomcat-6.0.36/webapps/test/WEB-IN F/classes/(JdomParse为src目录下jdom包中的类)四属性文件的读取:方法一InputStream in = lnewBufferedInputStream( newFileInputStream(name));Properties p = new Properties(); p.load(in);注意路径的问题,做执行之后就可以调用p.getProperty("name")得到对应属性的值方法二Locale locale =Locale.getDefault();ResourceBundle localResource =ResourceBundle.getBundle("test/propertiesTest",locale);String value = localResource.getString("test");System.out.println("ResourceBundle: " + value);工程src目录下propertiesTest.properties(名字后缀必须为properties)文件内容如下:test=hello word不通过Servlet获取路径第一种实现Java代码URL url = ClassLoader.getSystemClassLoader().getResource("./");File file =new File(url.getPath());File parentFile =new File(file.getParent());System.out.println("webRoot:"+parentFile.getParent());第二种实现首先写一个接听类 (推荐使用,容器启动时就执行,不会抛空指针异常,适合做定时器任务来删除服务器文件的路径)Java代码:package com.chinacreator.report.listener;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;/*** @authorxiaoqun.yi*/public class PathListener implementsServletContextListener {private staticServletContext servletContext;public voidcontextDestroyed(ServletContextEvent sce) {this.servletContext= sce.getServletContext();System.out.println("path=======:"+servletContext.getRealPath("/"));}public voidcontextInitialized(ServletContextEvent arg0) {}}在web.xml中加入如下配置Java代码 :com.chinacreator.report.listener.PathListener五、Java中的getResourceAsStream有以下几种:1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。
java中文件路径写法
java中文件路径写法Java中文件路径的写法是一种定义文件在计算机上位置的方式。
文件路径在编写Java程序时非常重要,因为它决定了程序如何访问和操作文件。
在Java中,文件路径的写法有以下几种方式:1. 相对路径相对路径是相对于程序当前工作目录的路径。
程序在执行时,会根据当前的工作目录来查找文件。
相对路径使用相对于当前工作目录的路径来定位文件。
相对路径可以是一个简单的文件名,也可以是包含文件夹层次的路径。
相对路径的写法如下:- 简单的文件名:filename.txt- 包含文件夹路径:folder/filename.txt2. 绝对路径绝对路径是从文件系统的根目录开始的路径,它提供了文件在计算机上的完整位置。
绝对路径不依赖于程序的当前工作目录,可以在任何地方使用。
绝对路径的写法如下:- 在Windows上的绝对路径:C:\folder\filename.txt- 在Linux和Mac上的绝对路径:/folder/filename.txt3. 使用File类Java提供了File类来操作文件和文件夹。
File类可以根据平台自动处理路径分隔符问题,并提供了一些方便的方法来操作文件路径。
使用File类的写法如下:javaFile file = new File("filename.txt");获取绝对路径String absolutePath = file.getAbsolutePath();判断文件是否存在boolean exists = file.exists();获取文件名String fileName = file.getName();获取文件所在目录String parentDirectory = file.getParent();4. 使用Paths类Java 7引入了Paths类,它提供了一些静态方法来创建和操作文件路径。
Paths类提供了更简洁的方式来处理文件路径。
java class类获取路径
java class类获取路径在Java中,要获取类的路径有几种不同的方法,取决于你想要获取的是编译后的类文件的路径,还是类加载时的路径。
我将从不同的角度来解释这些方法。
1. 获取编译后的类文件路径:当你编译Java类时,会生成对应的.class文件。
你可以使用Class类的getResource()方法来获取编译后的类文件的路径。
例如:java.Class clazz = MyClass.class;URL location = clazz.getResource('/MyClass.class');System.out.println(location);这将打印出编译后的类文件的路径。
2. 获取类加载路径:当Java程序加载类时,它会从类路径中查找类文件。
你可以使用ClassLoader类来获取类加载路径。
例如:java.ClassLoader classLoader =MyClass.class.getClassLoader();URL location =classLoader.getResource('com/example/MyClass.class');System.out.println(location);这将打印出类加载路径。
3. 获取类所在的包路径:有时候你可能想要获取类所在的包的路径。
你可以使用Class类的getProtectionDomain()方法来获取类所在的包的路径。
例如:java.Class clazz = MyClass.class;CodeSource codeSource =clazz.getProtectionDomain().getCodeSource();URL location = codeSource.getLocation();System.out.println(location);这将打印出类所在的包的路径。
Java文件的路径、绝对路径和规范路径示例说明
Java文件的路径、绝对路径和规范路径示例说明Java文件的路径、绝对路径和规范路径示例说明java.io.File提供了三个方法来获取文件的路径不同写法,这三个方法分别是getPath()、getAbsolutePath()和getCanonicalPath(),下面将进一步说明它们。
getPath本方法将文件的抽象路径名转换为一个路径名字符串并返回,返回的字符串使用默认名称分隔符(Windows下为“、”,Unix下为“/”)分隔名称序列中的名称。
如果使用URI创建的文件,字符串将移除协议头。
getAbsolutePath本方法返回文件的绝对路径名字符串。
如果文件对象本身是通过绝对路径名创建的,将简单地返回原来的参数,这与getPath() 方法一样;如果文件对象是通过相对路径创建的,返回的绝对路径名的解析方式因操作系统类型不同。
在UNIX 系统上,根据用户的当前目录解析相对路径名,可使该路径名成为绝对路径名。
在Microsoft Windows 系统上,首先根据路径名指定的当前驱动器目录(如果有)解析相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录解析它。
getCanonicalPath本方法返回规范的文件路径名字符串,建议优先使用。
规范路径名是绝对路径名,并且是惟一的。
规范路径名的准确定义与系统有关。
如有必要,此方法首先将路径名转换为绝对路径名,这与调用getAbsolutePath() 方法的效果一样,然后用与系统相关的方式将它映射到其惟一路径名。
这通常涉及到从路径名中移除多余的名称(比如"." 和"..")、解析符号连接(对于UNIX 平台),以及将驱动器号转换为标准大小写形式(对于Microsoft Windows 平台)。
每个表示现存文件或目录的路径名都有一个惟一的规范形式。
每个表示不存在文件或目录的路径名也有一个惟一的规范形式。
java读取文件的几种方式和通过url获取文件
java读取⽂件的⼏种⽅式和通过url获取⽂件public class ReadFromFile {/*** 以字节为单位读取⽂件,常⽤于读⼆进制⽂件,如图⽚、声⾳、影像等⽂件。
*/public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("以字节为单位读取⽂件内容,⼀次读⼀个字节:");// ⼀次读⼀个字节in = new FileInputStream(file);int tempbyte;while ((tempbyte = in.read()) != -1) {System.out.write(tempbyte);}in.close();} catch (IOException e) {e.printStackTrace();return;}try {System.out.println("以字节为单位读取⽂件内容,⼀次读多个字节:");// ⼀次读多个字节byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);// 读⼊多个字节到字节数组中,byteread为⼀次读⼊的字节数while ((byteread = in.read(tempbytes)) != -1) {System.out.write(tempbytes, 0, byteread);}} catch (Exception e1) {e1.printStackTrace();} finally {if (in != null) {try {in.close();} catch (IOException e1) {}}}}/*** 以字符为单位读取⽂件,常⽤于读⽂本,数字等类型的⽂件*/public static void readFileByChars(String fileName) {File file = new File(fileName);Reader reader = null;try {System.out.println("以字符为单位读取⽂件内容,⼀次读⼀个字节:");// ⼀次读⼀个字符reader = new InputStreamReader(new FileInputStream(file));int tempchar;while ((tempchar = reader.read()) != -1) {// 对于windows下,\r\n这两个字符在⼀起时,表⽰⼀个换⾏。
java中获取相对路径文件的方法
Java中获取相对路径文件的方法1.概述在J av a开发中,我们经常需要操作文件。
有时候,我们需要获取文件的相对路径,以便在程序中进行读取、写入等操作。
本文将介绍几种常用的方法,来获取Ja v a中相对路径文件的方式。
2.使用Cla ss.getReso urce()方法C l as s类提供了g etR e so ur ce()方法,可以用于获取相对于类所在位置的资源的U RL。
通过这个U RL,我们可以进一步获取文件的相对路径。
以下是使用C la ss.g e tR es ou rc e()方法获取相对路径文件的步骤:1.使用Cl as s类的`g e tR es ou rc e()`方法获取资源U RL,如:`U RL ur l=Yo ur Cl ass.cl as s.ge tR es our c e("r el at iv e/pat h/t o/fi l e.tx t");`2.通过UR L对象获取文件的相对路径,如:`S tr in gf il eP at h=u r l.ge tP at h();`请注意,`g et Re so ur c e()`方法中的相对路径是相对于类所在位置的路径。
如果文件位于当前类的同级目录下,可以直接使用文件名。
如果文件位于当前类的子目录或其他位置,需要指定相对路径。
以下是一个示例:```j av ap u bl ic cl as sT es t{p u bl ic st at ic vo idm a in(S tr in g[]a rgs){U R Lu rl=T es t.cl ass.ge tR es ou rc e("fi l es/d at a.tx t");S t ri ng fi le Pa th=ur l.g et Pa th();S y st em.o ut.p ri ntl n(f il eP at h);}}```上述代码中,假设有一个文件`d at a.tx t`位于当前类的同级目录下的`f il es`文件夹中。
Java获取文件路径的几种方法
Java获取⽂件路径的⼏种⽅法第⼀种:File f = new File(this.getClass().getResource("/").getPath());System.out.println(f);结果:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin获取当前类的所在⼯程路径;如果不加“/”File f = new File(this.getClass().getResource("").getPath());System.out.println(f);结果:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin\com\test获取当前类的绝对路径;第⼆种:File directory = new File("");//参数为空String courseFile = directory.getCanonicalPath() ;System.out.println(courseFile);结果:C:\Documents and Settings\Administrator\workspace\projectName获取当前类的所在⼯程路径;第三种:URL xmlpath = this.getClass().getClassLoader().getResource("selected.txt");System.out.println(xmlpath);结果:file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selected.txt获取当前⼯程src⽬录下selected.txt⽂件的路径第四种:System.out.println(System.getProperty("user.dir"));结果:C:\Documents and Settings\Administrator\workspace\projectName获取当前⼯程路径第五种:System.out.println( System.getProperty("java.class.path"));结果:C:\Documents and Settings\Administrator\workspace\projectName\bin获取当前⼯程路径。
java读取文件的几种方式和通过url获取文件
java读取⽂件的⼏种⽅式和通过url获取⽂件public class ReadFromFile {/*** 以字节为单位读取⽂件,常⽤于读⼆进制⽂件,如图⽚、声⾳、影像等⽂件。
*/public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("以字节为单位读取⽂件内容,⼀次读⼀个字节:");// ⼀次读⼀个字节in = new FileInputStream(file);int tempbyte;while ((tempbyte = in.read()) != -1) {System.out.write(tempbyte);}in.close();} catch (IOException e) {e.printStackTrace();return;}try {System.out.println("以字节为单位读取⽂件内容,⼀次读多个字节:");// ⼀次读多个字节byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);// 读⼊多个字节到字节数组中,byteread为⼀次读⼊的字节数while ((byteread = in.read(tempbytes)) != -1) {System.out.write(tempbytes, 0, byteread);}} catch (Exception e1) {e1.printStackTrace();} finally {if (in != null) {try {in.close();} catch (IOException e1) {}}}}/*** 以字符为单位读取⽂件,常⽤于读⽂本,数字等类型的⽂件*/public static void readFileByChars(String fileName) {File file = new File(fileName);Reader reader = null;try {System.out.println("以字符为单位读取⽂件内容,⼀次读⼀个字节:");// ⼀次读⼀个字符reader = new InputStreamReader(new FileInputStream(file));int tempchar;while ((tempchar = reader.read()) != -1) {// 对于windows下,\r\n这两个字符在⼀起时,表⽰⼀个换⾏。
Java中获取当前路径
Java中获取当前路径1. 获取当前路径(绝对路径)package p01;import java.io.File;import java.io.IOException;import .URL;public class Hello01 {public static void main(String[] args) {System.out.println(getCurrentPath1());// D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binSystem.out.println(new Hello01().getCurrentPath2());// D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin\p01System.out.println(getCurrentPath3());// D:\eclipseJavaWorkspace\eclipse202006Workspace\HelloSystem.out.println(getCurrentPath4());// file:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/System.out.println(getCurrentPath5());// D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binSystem.out.println(getCurrentPath6());// D:\eclipseJavaWorkspace\eclipse202006Workspace\HelloSystem.out.println(getCurrentPath7());// /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin//* 结果:D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binD:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin\p01D:\eclipseJavaWorkspace\eclipse202006Workspace\Hellofile:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binD:\eclipseJavaWorkspace\eclipse202006Workspace\HelloD:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin*/}// 获取当前类的所在⼯程路径;public static String getCurrentPath1() {File f = new File(Hello01.class.getResource("/").getPath());return f.getPath();}// 获取当前类的绝对路径;public String getCurrentPath2() {File f = new File(this.getClass().getResource("").getPath());return f.getPath();}// 获取当前类的所在⼯程路径;public static String getCurrentPath3() {File directory = new File("");// 参数为空// getCanonicalPath()返回的就是标准的将符号完全解析的路径String courseFile = "";try {courseFile = directory.getCanonicalPath();} catch (IOException e) {e.printStackTrace();}return courseFile;}// 获取当前类的所在⼯程路径;// file:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/public static String getCurrentPath4() {URL path = Thread.currentThread().getContextClassLoader().getResource("");return path.toString();}public static String getCurrentPath5() {return System.getProperty("java.class.path");}public static String getCurrentPath6() {return System.getProperty("user.dir");}public static String getCurrentPath7() {String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();// /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/ String p = new File(path).getAbsolutePath();// D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binreturn p;}}View Code2. 获取资源⽂件的路径,或读⽂件获取src下资源⽂件编译后的路径(即classes路径):String s2 = Thread.currentThread().getContextClassLoader().getResource("").getPath(); // /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin///String s3 = Thread.currentThread().getContextClassLoader().getResource("/").getPath();// java⼯程下报错:NullPointerExceptionString s4 = Thread.currentThread().getContextClassLoader().getResource("test.txt").getPath();// /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/test.txt 或者类名.class.getClassLoader().getResource("").getPath();或者 this.class.getClassLoader().getResource("").getPath();//此⽅法获得的path,虽然前⾯多⼀个“/”,但仍然可以⽤于构造FileFile file2 = new File(s2);File file4 = new File(s4);InputStream in = new BufferedInputStream(new FileInputStream(new File(s2)));//还可以使⽤如下,直接返回输⼊流对象InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt");//test.txt在src夹下(即classpath下)if(null == resourceAsStream) {throw new RuntimeException("nullPointer...");}else {StringBuilder sb = new StringBuilder();byte[] buf = new byte[512];int len = -1;try {while((len = resourceAsStream.read(buf))!=-1) {sb.append(new String(buf,0,len));}System.out.println(sb.toString());} catch (IOException e) {e.printStackTrace();}}3. Java中的getResourceAsStream有以下⼏种:1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以'/'开头则是从ClassPath根下获取。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五种:
System.out.println( System.getProperty("java.class.path"));
结果:
C:\Documents and Settings\Administrator\workspace\projectName\bin
关于绝对路径和相对路径:
绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径。/index.htm也代表了一个URL绝对路径。相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./" 代表当前目录,"../"代表上级目录。这种类似的表示,也是属于相对路径。另外关于URI,URL,URN等内容,请参考RFC相关文档标准。RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,(/rfc/rfc2396.txt)2.关于JSP/Servlet中的相对路径和绝对路径。2.1服务器端的地址服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)
获取当前类的所在工程路径;
第三种:
URL xmlpath = this.getClass().getClassLoader().getResource("selected.txt");
System.out.println(xmlpath);
结果:
file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selected.txt
ห้องสมุดไป่ตู้第一种:
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
获取当前类的所在工程路径;
如果不加“/”
File f = new File(this.getClass().getResource("").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin\com\test
获取当前工程路径
获取当前类的绝对路径;
第二种:
File directory = new File("");//参数为空
String courseFile = directory.getCanonicalPath() ;
System.out.println(courseFile);
结果:
C:\Documents and Settings\Administrator\workspace\projectName
获取当前工程src目录下selected.txt文件的路径
第四种:
System.out.println(System.getProperty("user.dir"));
结果:
C:\Documents and Settings\Administrator\workspace\projectName