java中如何使用getResourceAsStream()获取文件的相对路径呢?

乔欣 Java经验 发布时间:2022-12-03 22:04:02 阅读数:16692 1
下文笔者讲述获取一个文件的相对路径的方法分享,如下所示
实现思路:
    方式1:
	  直接使用File对象获取相对路径
	方式2:
	   借助类的getResource方法
	方式3:
	   借助当前线程的ClassLoader的getResource方法获取路径
	方式4:
	   借助web工程的上下文获取路径

File file = new File("src/java265.txt");
File file = new File(TestRelativePath.class.getResource("/java265.txt").getFile());
File file = new File(Thread.currentThread().getContextClassLoader().getResource("java265.txt").getFile());
File file = new File(getServletContext().getRealPath("/WEB-INF/classes/java265.txt"));
例:
@Test
public  void  testMethod1() throws IOException{
	File file = new File("src/java265.txt");
	BufferedReader br = new BufferedReader(new FileReader(file));
	String len = null;
	while ((len=br.readLine())!=null){
		System.out.println(len);
	}
}

使用类的相对路径
TestRelativePath.class.getResource(“/java265.txt”).getFile()

 @Test
/**
 * 使用类的相对路径
 * “/” 代表的是bin
 * src文件夹和resources文件夹下
 * 所有内容都会被加载到bin下面
 */
public  void  testMethod2() throws IOException{

	File file = new File(TestRelativePath.class.getResource("/java265.txt").getFile());
	BufferedReader br = new BufferedReader(new FileReader(file));
	String len = null;
	while ((len=br.readLine())!=null){
		System.out.println(len);
	}
} 


使用当前线程的类加载器
Thread.currentThread().getContextClassLoader().getResource(“java265.txt”).getFile()

@Test
/**
 * 使用当前线程的类加载器
 * “ ”空代表的是bin
 * 直接填写test
 * 文件夹下的的东西都会被加载到bin下面
 */
public  void  testMethod3() throws IOException{

	File file = new File(Thread.currentThread().getContextClassLoader().getResource("java265.txt").getFile());
	BufferedReader br = new BufferedReader(new FileReader(file));
	String len = null;
	if ((len=br.readLine())!=null){
		System.out.println(len);
	}
}


读取web工程下的文件
使用getRealPath()读取

读取 index.jsp
@WebServlet(name = "TestServlet",urlPatterns = "/TestServlet")
public class TestServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
}

/**
 *  web工程的根目录是 webRoot
 *  使用 “/” 代表webroot 
 *  webroot下面有index.jsp文件
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	File file = new File(getServletContext().getRealPath("/index.jsp"));
	BufferedReader br = new BufferedReader(new FileReader(file));
	String len = null;
	while ((len=br.readLine())!=null){
		System.out.println(len);
	}
  }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202212/16700763005011.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者