java中与根目录平行的目录下的文件如何加载?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中与根目录平行的目录下的文件如何加载?相关的知识,希望对你有一定的参考价值。
我建立一个config目录 和 src目录平行 里面有个properties文件 如何读取这个文件呢?这个文件的路径该是什么?
用getResource不管用,直接使用File读取。
//源文件夹下加载文件InputStream is1=PathDemo.class.getClassLoader().getResourceAsStream("config/s1.xml");
System.out.println(is1);//config与src同级。getResourceAsStream 读取为null
File s1=new File("config/s1.xml");
System.out.println(s1); 参考技术A 你的理解错误了,src和config都是src目录,他们最终编译都是编译到同一个classes目录。所以其实src和config对于程序来说是同一个目录。本回答被提问者采纳 参考技术B 看你拷贝到目标的哪个目录里面
如果在classes目录里,就是
new File("config/myConfig.properites");
如果也是和classes目录同级,就是
new File("../config/myConfig.properites");
还要看当前目录。
使用getClass().getResourceAsStream() 就方便一些。
如果在classes目录里,就是
InputStream in_=getClass().getResourceAsStream("/config/myConfig.properites"); 参考技术C 例如加载文件的类名为DBUtil
Properties prop = new Properties();
prop.load(DBUtil.class.getClassLoader().getResourceAsStream("config//db.properties"));
上面反斜杠是否需要转义忘了 参考技术D Properties pro = new Properties(config/info.properties);
pro.属性
用java写一个代码实现: 如何列出某个目录下的所有子目录
只要求列出目录,不能列出文件
/*** 列出文件夹下的子文件夹名
* @param localRoot
* @throws content
*/
public static void list(String localRoot) throws Exception
File[] fs = new File(localRoot).listFiles();
if ((fs == null) || (fs.length <= 0))
System.out.println("空文件夹");
return;
for (File f : fs)
if (f.isDirectory())
System.out.println("目录:"+ f.getName());
建立个class然后见个main方法调用一下就可以了! 参考技术A import java.io.*;
public class Test
static void myList(String s)
File f=new File(s);
String[] m=null;
m=f.list();
for(int i=0;i<m.length;i++)
File fm=new File(s+"/"+m[i]);
if(!fm.isFile())
System.out.println (fm.getName());
myList(s+"/"+m[i]);
public static void main (String[] args)
myList("a");//假设你的目录名是a 你可以换成别的
参考技术B 递归调用就行了嘛
public class Test
public static void find(String filePath)
File file = new File(filePath);
if (file.isDirectory())
System.out.println(file.getPath());
File[] listFiles = file.listFiles();
if (listFiles != null)
for (int i = 0; i < listFiles.length; i++)
if (listFiles[i].isDirectory())
Test.find(listFiles[i].getPath());
public static void main(String[] args)
find("c:");
参考技术C //:ListDirectories.java
import java.io.File;
import java.io.FileFilter;
public class ListDirectories
//File filter object.
private static FileFilter filter = new MyFilter();
public static void main(String[] args)
String dir = javax.swing.JOptionPane.showInputDialog("Input root dir here:");
if(dir!=null)
printRecursive(dir);
private static void printRecursive(String dir)
File df = new File(dir);
if(df.isDirectory() && df.canRead())
printRecursive(df);
else
System.out.println("Directory '"+dir+"' is not exists or can not be read.");
private static void printRecursive(File dir)
File[] files = dir.listFiles(filter);
if(files!=null)
for(int i=0; i<files.length; i++)
System.out.println(files[i].getAbsolutePath());
if(files[i].canRead())
printRecursive(files[i]);
//File filter
private static class MyFilter implements FileFilter
public boolean accept(File pathname)
return pathname.isDirectory();
以上是关于java中与根目录平行的目录下的文件如何加载?的主要内容,如果未能解决你的问题,请参考以下文章