java中如何使用getResourceAsStream()获取文件的相对路径呢?
下文笔者讲述获取一个文件的相对路径的方法分享,如下所示
实现思路:
方式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);
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


