一、通过File类获取文件路径
Java中可以使用File类来操作文件,通过该类的方法可以获取文件的路径。File类的对象可以表示一个目录或文件的路径名,可以使用它的getPath()方法获取它所表示的目录或文件的路径。
public static void main(String[] args){
File file = new File("test.txt");
String filePath = file.getPath();
System.out.println(filePath);
}
上述代码中,首先创建了一个File类的对象file,该对象参数为文件名test.txt,接着通过调用getPath()方法获取文件路径,并把该路径打印出来。
二、通过Class类获取文件路径
在Java中,可以通过调用当前类的ClassLoader对象的getResource()方法,来获取文件的URL。该方法返回当前路径资源的URL,可以进而获取该资源的路径。
public static void main(String[] args){
String filePath = FileDemo.class.getClassLoader().getResource("test.txt").getPath();
System.out.println(filePath);
}
上述代码中,首先通过.class文件获取该类的ClassLoader对象,再通过调用getResource()方法获取文件路径,最后把该路径打印出来。需要注意的是,这里的test.txt需与当前类在同一路径下,否则会获取失败。
三、通过ClassLoader类获取文件路径
相对于上述方法,可以直接通过ClassLoader来获取文件路径,ClassLoader类中的getResource()方法与Class类中的getResource()方法类似,用于获取当前路径资源的URL,可以进而获取该资源的路径。
public static void main(String[] args){
String filePath = ClassLoader.getSystemResource("test.txt").getPath();
System.out.println(filePath);
}
上述代码中,通过调用ClassLoader类的getSystemResource()方法获取文件路径,最后把该路径打印出来。
四、通过System.getProperty()方法获取文件路径
System类中的getProperty()方法可获取Java程序的一些系统参数,其中包括Java运行时的环境属性以及Java虚拟机上运行的操作系统的参数。我们可以通过获取java.class.path参数来获取class文件的路径,再加上文件名即可得到文件路径。
public static void main(String[] args){
String classPath = System.getProperty("java.class.path");
String filePath = classPath+"/test.txt";
System.out.println(filePath);
}
上述代码中,首先获取Java运行时的类路径,然后再通过添加文件名获取文件路径。输出结果为包含test.txt文件的class文件所在的路径。
五、通过getResourceAsStream()方法获取文件路径
getResourceAsStream()方法用于读取资源文件,不论该资源文件位置在哪里,都可以通过该方法获取到该文件的输入流。
public static void main(String[] args){
InputStream in = FileDemo.class.getResourceAsStream("/test.txt");
System.out.println(in);
}
通过调用getResourceAsStream()方法获取指定路径(可以直接使用文件名,也可以使用相对路径)下的文件输入流,并打印该文件输入流。