- Class FileInputStream
- Constructor Summary
- Method Summary
- Methods declared in class java.io.InputStream
- Methods declared in class java.lang.Object
- Constructor Details
- FileInputStream
- FileInputStream
- FileInputStream
- Method Details
- read
- read
- read
- skip
- available
- close
- getFD
- getChannel
- How to Open a File in Java
- Java Classes Used for Opening a File
- Method 1: Opening a File Using the Java Scanner Class
- Method 2: Opening a File Using FileInputStream Class
- Method 3: Opening a File Using the Java BufferedReader Class
- Conclusion
- About the author
- Farah Batool
- Open file method in java
- Learn Latest Tutorials
- Preparation
- Trending Technologies
- B.Tech / MCA
- Javatpoint Services
- Training For College Campus
Class FileInputStream
A FileInputStream obtains input bytes from a file in a file system. What files are available depends on the host environment.
FileInputStream is meant for reading streams of raw bytes such as image data. For reading streams of characters, consider using FileReader .
Constructor Summary
Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system.
Creates a FileInputStream by using the file descriptor fdObj , which represents an existing connection to an actual file in the file system.
Creates a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system.
Method Summary
Returns an estimate of the number of remaining bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream.
Returns the FileDescriptor object that represents the connection to the actual file in the file system being used by this FileInputStream .
Methods declared in class java.io.InputStream
Methods declared in class java.lang.Object
Constructor Details
FileInputStream
Creates a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system. A new FileDescriptor object is created to represent this file connection. First, if there is a security manager, its checkRead method is called with the name argument as its argument. If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading then a FileNotFoundException is thrown.
FileInputStream
Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system. A new FileDescriptor object is created to represent this file connection. First, if there is a security manager, its checkRead method is called with the path represented by the file argument as its argument. If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading then a FileNotFoundException is thrown.
FileInputStream
Creates a FileInputStream by using the file descriptor fdObj , which represents an existing connection to an actual file in the file system. If there is a security manager, its checkRead method is called with the file descriptor fdObj as its argument to see if it’s ok to read the file descriptor. If read access is denied to the file descriptor a SecurityException is thrown. If fdObj is null then a NullPointerException is thrown. This constructor does not throw an exception if fdObj is invalid . However, if the methods are invoked on the resulting stream to attempt I/O on the stream, an IOException is thrown.
Method Details
read
read
Reads up to b.length bytes of data from this input stream into an array of bytes. This method blocks until some input is available.
read
Reads up to len bytes of data from this input stream into an array of bytes. If len is not zero, the method blocks until some input is available; otherwise, no bytes are read and 0 is returned.
skip
Skips over and discards n bytes of data from the input stream. The skip method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly 0 . If n is negative, the method will try to skip backwards. In case the backing file does not support backward skip at its current position, an IOException is thrown. The actual number of bytes skipped is returned. If it skips forwards, it returns a positive value. If it skips backwards, it returns a negative value. This method may skip more bytes than what are remaining in the backing file. This produces no exception and the number of bytes skipped may include some number of bytes that were beyond the EOF of the backing file. Attempting to read from the stream after skipping past the end will result in -1 indicating the end of the file.
available
Returns an estimate of the number of remaining bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream. Returns 0 when the file position is beyond EOF. The next invocation might be the same thread or another thread. A single read or skip of this many bytes will not block, but may read or skip fewer bytes. In some cases, a non-blocking read (or skip) may appear to be blocked when it is merely slow, for example when reading large files over slow networks.
close
Closes this file input stream and releases any system resources associated with the stream. If this stream has an associated channel then the channel is closed as well.
getFD
Returns the FileDescriptor object that represents the connection to the actual file in the file system being used by this FileInputStream .
getChannel
Returns the unique FileChannel object associated with this file input stream. The initial position of the returned channel will be equal to the number of bytes read from the file so far. Reading bytes from this stream will increment the channel’s position. Changing the channel’s position, either explicitly or by reading, will change this stream’s file position.
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2023, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.
How to Open a File in Java
Java is an object-oriented language that offers various predefined packages, classes, and methods for performing different tasks. While writing a Java program, you may need to open a file and perform some related operations. Don’t know how to do that? Using the built-in Java classes, you can open files without any hassle.
This guide will teach the method of opening a file in Java. So, let’s start!
Java Classes Used for Opening a File
In Java, you can utilize any of the given classes in your program for opening a file:
- Java Scanner class
- Java Desktop class
- Java BufferedReader class
- Java FileReader class
- Java FileInputStream class
- Java nio Package
Here, we will discuss the top three most utilized Java classes for opening a file.
Method 1: Opening a File Using the Java Scanner Class
The java.util package contains the Scanner class. The constructor of the Java Scanner class enables you to open and read the file’s content by taking a file as an argument. The Scanner class also provides various methods for reading data from a file, such as the nextLine() method.
Example
In this example, we will use the Java Scanner class to open and read the content of the java11.txt file. To do so, import the java.util.Scanner class and follow the given instructions:
- Firstly, in the try block, we will create a variable named myfile that will be used to refer to the required file using the given path.
- Then, we will create a Scanner class object named openfile and pass myfile to it as an argument.
- Within the while loop, the object openfile will call the method hasNextLine() to read the file by using the nextLine()
- Close the scanner object openfile by using the close()
try {
File myfile = new File ( «E: \\ Java \\ java11.txt» ) ;
Scanner openfile = new Scanner ( myfile ) ;
while ( openfile. hasNextLine ( ) ) {
String filedata = openfile. nextLine ( ) ;
System . out . println ( filedata ) ;
}
openfile. close ( ) ;
}
If the particular file does not exist, catch block will throw FileNotFoundException:
catch ( FileNotFoundException e ) {
System . out . println ( «Error.» ) ;
e. printStackTrace ( ) ;
}
The given output indicates that we have successfully read the content of our java11.txt file:
Now, let’s head toward the other method for opening a file in a Java program.
Method 2: Opening a File Using FileInputStream Class
FileInputStream is another Java class that can be utilized for opening and reading a file in Java. Similar to the Scanner class constructor, the constructor of the FileInputStream class also accepts the file as an argument. However, it reads the file in the form of bytes.
Example
The below example will show the method to open a file using FileInputStream class. Here is the list of steps that we have followed:
- Firstly, import the io.FileInputStream package into your project.
- In the try block, we will create a variable named myfile that accepts the file’s location as an argument.
- Then, create an object of the FileInputStream class named openfile and pass the created file variable to it.
- In the added while loop, the object openfile will read the required file in byte form.
try {
File myfile = new File ( «E: \\ Java \\ java11.txt» ) ;
FileInputStream openfile = new FileInputStream ( myfile ) ;
System . out . println ( «File content: » ) ;
int i = 0 ;
while ( ( i = openfile. read ( ) ) !=- 1 )
{
System . out . print ( ( char ) i ) ;
}
}
The catch block will throw an Exception if the file does not exist:
Method 3: Opening a File Using the Java BufferedReader Class
The BufferedReader class belongs to the java.io package. Its constructor can be utilized for opening and reading the text with the help of a character input stream.
Example
Have a look at the below-given example to open a file in a Java program with the help of Buffered Reader class:
- Firstly, import theio package for the BufferedReader class in your project.
- Add a try block and create a variable named myfile that accepts the file path as an argument.
- Then, create an object of the BufferedReader class named openfile and pass a file to it.
- The openfile object will read the file by using buffering-character input stream.
try {
File myfile = new File ( «E: \\ Java \\ java11.txt» ) ;
BufferedReader openfile = new BufferedReader ( new FileReader ( myfile ) ) ;
System . out . println ( «The content of file: » ) ;
int i = 0 ;
while ( ( i = openfile. read ( ) ) != — 1 ) {
System . out . print ( ( char ) i ) ;
}
}
Lastly, add a catch block that throws an Exception if the file does not exist:
We have given all the important information related to opening a file in Java.
Conclusion
To open and read a file in Java, we have predefined packages, methods, and classes, including the Scanner class, FileInputStream Class, and BufferedReader class. The Scanner class offers different methods to read data while the FileInputStream Class reads data in the form of bytes and the BufferedReader Class reads in the form of buffering-character input streams. This guide discussed the procedure related to opening a file in Java.
About the author
Farah Batool
I completed my master’s degree in computer science. I am an academic researcher and love to learn and write about new technologies. I am passionate about writing and sharing my experience with the world.
Open file method in java
Learn Latest Tutorials
Preparation
Trending Technologies
B.Tech / MCA
Javatpoint Services
JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.
- Website Designing
- Website Development
- Java Development
- PHP Development
- WordPress
- Graphic Designing
- Logo
- Digital Marketing
- On Page and Off Page SEO
- PPC
- Content Development
- Corporate Training
- Classroom and Online Training
- Data Entry
Training For College Campus
JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week
Like/Subscribe us for latest updates or newsletter