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 Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.