Heim  >  Artikel  >  Java  >  So lesen Sie Dateien mithilfe relativer Pfade in Java

So lesen Sie Dateien mithilfe relativer Pfade in Java

coldplay.xixi
coldplay.xixiOriginal
2020-09-02 13:06:0013774Durchsuche

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);
        }
    }

So lesen Sie Dateien mithilfe relativer Pfade in Java2. 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

verwenden

Aber da das Webroot das Stammverzeichnis ist, müssen wir es aus Klassen lesen: Die Klassen von idea entsprechen dem Klassenpfad von esclipse. Klassenbeschreibung:

Code:

File file = new File(getServletContext().getRealPath("/WEB-INF/classes/test.txt"));

So lesen Sie Dateien mithilfe relativer Pfade in JavaDetaillierte 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 Effekt

InputStream 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn