So verwenden Sie relative Pfade zum Lesen von Dateien in Java: 1. Verwenden Sie die Dateimethode [Dateidatei = neue Datei („src/test.txt“)“. 2. Verwenden Sie den relativen Pfad der Klasse Klasse des aktuellen Thread-Loaders; 4. Dateien unter dem Webprojekt lesen. 🔜 src/test.txt");
@Test /** * 这种方法 “” 空代表的是 这个Java项目 TestSomeTechnology 由于实际项目在打包后没有src目录 所以这种方法不常用 */ public void testMethod1() throws IOException{ File file = new File("src/test.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); String len = null; while ((len=br.readLine())!=null){ System.out.println(len); } }
2. Verwenden Sie den relativen Pfad der Klasse
TestRelativePath.class.getResource("/test.txt").getFile()
@Test /** * 使用类的相对路径 * 这种方法 “/” 代表的是bin。 src文件夹和resources 文件夹下的的东西都会被加载到bin下面 因为这两个文件被配置为了source */ public void testMethod2() throws IOException{ File file = new File(TestRelativePath.class.getResource("/test.txt").getFile()); BufferedReader br = new BufferedReader(new FileReader(file)); String len = null; while ((len=br.readLine())!=null){ System.out.println(len); } }3. Verwenden Sie den aktueller Thread Klassenlader Thread.currentThread().getContextClassLoader().getResource("test.txt").getFile()
@Test /** * 这种是通过当前线程的类加载器 * 这种方法 “ ” 空代表的是bin 。 于是就直接填写test,文件夹下的的东西都会被加载到bin下面,因为这两个文件被配置为了source */ public void testMethod3() throws IOException{ File file = new File(Thread.currentThread().getContextClassLoader().getResource("test.txt").getFile()); BufferedReader br = new BufferedReader(new FileReader(file)); String len = null; if ((len=br.readLine())!=null){ System.out.println(len); } }4. Lesen Sie die Dateien unter dem Webprojekt mit getRealPath(), um
zu lesen Das Verzeichnis lautet wie folgt:
Index.jsp lesen
@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); } } }
Test.txt-Datei lesen
Aber wenn wir test.txt lesen möchten, können wir die obige Methode verwenden File file = new File(Thread.currentThread().getContextClassLoader().getResource("test.txt").getFile());
Sie können auch
Code:
File file = new File(getServletContext().getRealPath("/WEB-INF/classes/test.txt"));
Detaillierte Erklärung der Methode getResourceAsStream()
Die Verwendung von getResourceAsStream() ist die gleiche wie die Methode getResource(). Nach der Verwendung von getResource() zum Abrufen der Dateidatei, dann neu FileInputStream(file) und getResourceAsStream() haben den gleichen Effekt. . Die beiden Codes haben den gleichen EffektInputStream inputStream1 = new FileInputStream(new File(Thread.currentThread().getContextClassLoader().getResource("test.txt").getFile())); InputStream inputStream2 = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt");
Verwandte Empfehlungen: getRealPath()
Programmiervideokurs
Das obige ist der detaillierte Inhalt vonSo lesen Sie Dateien mithilfe relativer Pfade in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!