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中与根目录平行的目录下的文件如何加载?的主要内容,如果未能解决你的问题,请参考以下文章

wordpress的文件上传到根目录下安装完成后,index.php怎么是在wp-admin下的?不应该在根目录下吗?

asp.net c# css 根目录下的文件路径写法

delphi 获取根目录下的文件名及子目录下的文件名

Linux根目录下的各个子目录的作用

如何快速将子文件夹下的文件全部复制到一个总的根目录下

如何获取一个目录下有多少个文件 java