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); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。