search
HomeJavaJavaBaseHow to read files in java

How to read files in java

Nov 21, 2019 pm 01:58 PM
javaread file

Methods for reading files in java: 1. Read by using the [java.io] method and read from a relative path relative to the current user directory; 2. By using the [java.lang.ClassLoader] method Read, read from a relative path relative to the classpath.

How to read files in java

Methods to read files in java:

Two methods to read files in java: java.io And java.lang.ClassLoader

// java.io:  
File  file  =  new  File("...");  
FileInputStream  fis  =  new  FileInputStream("...");  
FileReader  fr  =  new  FileReader("...");  

//ClassLoader:  
ClassLoader  loader  =  XXXClass.class.getClassLoader();   
ClassLoader  loader2  =  Thread.currentThread().getContextClassLoader();  

URL  url  =  loader.getResource("...");  
File  file  =  new  File(url.getFile());  
InputStream  input  =  loader.getResourceAsStream("...");

1, classes in the java.io package always analyze relative path names based on the current user directory, which means that whether relative paths work well depends on to the value of user.dir. The system property user.dir is set when the JVM is started. It is usually the calling directory of the Java virtual machine, that is, the directory where the java command is executed.

For tomcat/jboss container, user.dir is the %home/bin%/ directory, because this directory is where we start the web container

When running the program in eclipse, eclipse will Set the value of user.dir to the root directory of the project

The user directory can be viewed using System.getProperty("user.dir")

So, use java.io to read the file , whether it is a relative path or an absolute path is not a good practice, don't use it if you can't use it (in JavaEE).

2. Use ClassLoader

Class.getResource() has 2 ways, absolute path and relative path. The absolute path starts with / and searches from the root directory of the classpath or jar package;

The relative path is relative to the directory where the current class is located, allowing you to use .. or . to locate files.

ClassLoader.getResource() can only use absolute paths and does not start with /.

These two methods of reading resource files will not depend on user.dir or the specific deployment environment. They are recommended practices (JavaEE)

How Select

java.io:

Read the relative path relative to the current user directory; focus on dealing with disk files or use in pure java projects.

Although the ClassLoader method is more versatile, if it is not a javaEE environment, it is unreasonable to locate the classpath path to read the file.

java.lang.ClassLoader:

Read relative path relative to classpath; it is recommended to use this method in the javaEE environment.

Usually, ClassLoader cannot read files that are too large. It is suitable for reading configuration files of web projects. If you need to read large files, you still need to use the IO package. You can first obtain the file through ClassLoader. The absolute path, and then passed to File or other objects, it would be better to use the objects in the io package to read.

For more java knowledge, please pay attention to java basic tutorial.

The above is the detailed content of How to read files in java. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.