Home > Java > JavaBase > body text

How to read files in java

Release: 2022-01-12 15:30:15
Original
61214 people have browsed it

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("...");
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template