❶ java读取文件的几种方法
方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中。文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在web-info及webroot下面等。因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xml和properties。缺点:不能在servlet外面应用读取配置信息。
方式二:采用ResourceBundle类读取配置信息,
优点是:可以以完全限定类名的方式加载资源后,直接的读取出来,且可以在非Web应用中读取资源文件。缺点:只能加载类classes下面的资源文件且只能读取.properties文件。
方式三:采用ClassLoader方式进行读取配置信息
优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息
缺点:只能加载类classes下面的资源文件。
方法4 getResouceAsStream
XmlParserHandler.class.getResourceAsStream 与classloader不同
❷ java怎么读取同一个工程里面的src目录下的文件
在java中获得文件的路径在我们做上传文件操作时是不可避免的。x0dx0ax0dx0aweb 上运行 x0dx0a1:this.getClass().getClassLoader().getResource("/").getPath(); x0dx0athis.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的绝对URI路径。x0dx0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/x0dx0aSystem.getProperty("user.dir");x0dx0athis.getClass().getClassLoader().getResource(".").getPath(); 得到的是 项目的绝对路径。x0dx0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.warx0dx0ax0dx0a2:this.getClass().getResource("/").getPath(); x0dx0athis.getClass().getResource("").getPath(); 得到的是当前类 文件的URI目录。x0dx0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/x0dx0athis.getClass().getResource(".").getPath(); X 不 能运行x0dx0ax0dx0a3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()x0dx0aThread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。x0dx0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/x0dx0aThread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 项目的绝对路径。x0dx0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.warx0dx0ax0dx0a在本地运行中x0dx0a1:this.getClass().getClassLoader().getResource("").getPath(); x0dx0athis.getClass().getClassLoader().getResource(".").getPath(); 得到的是 ClassPath的绝对URI路径。x0dx0a如:/D:/myProjects/hp/WebRoot/WEB-INF/classesx0dx0athis.getClass().getClassLoader().getResource(".").getPath(); X 不 能运行x0dx0a2:this.getClass().getResource("").getPath(); x0dx0athis.getClass().getResource(".").getPath(); 得到的是当前类 文件的URI目录。x0dx0a如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/x0dx0a/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的绝对URI路径。x0dx0a如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
❸ java 获取src下的文件路径怎么写
java工程还是web工程?
java的话/src/就可以了啊
web的话,可以使用request.getServletContext().getRealPath("当前就是src下,这里可以写以后的路径");
❹ java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名
可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。
import java.io.File;
import java.lang.reflect.Method;
public class LoopApp {
public static void main(String[] args) throws Exception {
String packageName = "";
File root = new File(System.getProperty("user.dir") + "\\src");
loop(root, packageName);
}
public static void loop(File folder, String packageName) throws Exception {
File[] files = folder.listFiles();
for (int fileIndex = 0; fileIndex < files.length; fileIndex++) {
File file = files[fileIndex];
if (file.isDirectory()) {
loop(file, packageName + file.getName() + ".");
} else {
listMethodNames(file.getName(), packageName);
}
}
}
public static void listMethodNames(String filename, String packageName) {
try {
String name = filename.substring(0, filename.length() - 5);
Object obj = Class.forName(packageName + name);
Method[] methods = obj.getClass().getDeclaredMethods();
System.out.println(filename);
for (int i = 0; i < methods.length; i++) {
System.out.println("\t" + methods[i].getName());
}
} catch (Exception e) {
System.out.println("exception = " + e.getLocalizedMessage());
}
}
}
❺ java读取根目录为什么到了src下
src目录只是java默认的源文件路径,可以自行按照需求进行修改调整。编译器可以自动进行编译。