Java Program to Store and Read Objects From a File
In this article, you'll acquire how to read a text file or binary (image) file in Java using various classes and utility methods provided by Coffee similar BufferedReader
, LineNumberReader
, Files.readAllLines
, Files.lines
, BufferedInputStream
, Files.readAllBytes
, etc.
Let'due south await at each of the unlike ways of reading a file in Java with the assistance of examples.
Java read file using BufferedReader
BufferedReader is a unproblematic and performant way of reading text files in Coffee. Information technology reads text from a character-input stream. It buffers characters to provide efficient reading.
import coffee.io. BufferedReader ; import java.io. IOException ; import java.nio.charset. Charset ; import coffee.nio.charset. StandardCharsets ; import java.nio.file. Files ; import coffee.nio.file. Path ; import coffee.nio.file. Paths ; public class BufferedReaderExample { public static void main ( String [ ] args) { Path filePath = Paths . become ( "demo.txt" ) ; Charset charset = StandardCharsets .UTF_8; try ( BufferedReader bufferedReader = Files . newBufferedReader (filePath, charset) ) { String line; while ( (line = bufferedReader. readLine ( ) ) != zilch ) { System .out. println (line) ; } } take hold of ( IOException ex) { System .out. format ( "I/O mistake: %s%n" , ex) ; } } }
Java read file line by line using Files.readAllLines()
Files.readAllLines() is a utility method of the Java NIO's Files class that reads all the lines of a file and returns a List<String>
containing each line. Information technology internally uses BufferedReader to read the file.
import java.io. IOException ; import java.nio.charset. Charset ; import java.nio.charset. StandardCharsets ; import java.nio.file. Files ; import java.nio.file. Path ; import java.nio.file. Paths ; import java.util. List ; public form FilesReadAllLinesExample { public static void principal ( String [ ] args) { Path filePath = Paths . get ( "demo.txt" ) ; Charset charset = StandardCharsets .UTF_8; try { Listing < String > lines = Files . readAllLines (filePath, charset) ; for ( String line: lines) { System .out. println (line) ; } } catch ( IOException ex) { Arrangement .out. format ( "I/O error: %s%n" , ex) ; } } }
Coffee read file line by line using Files.lines()
Files.lines() method reads all the lines from a file as a Stream
. Y'all can use Stream API methods similar forEach
, map
to work with each line of the file.
import java.io. IOException ; import java.nio.charset. Charset ; import java.nio.charset. StandardCharsets ; import coffee.nio.file. Files ; import java.nio.file. Path ; import java.nio.file. Paths ; public class FilesLinesExample { public static void principal ( Cord [ ] args) { Path filePath = Paths . get ( "demo.txt" ) ; Charset charset = StandardCharsets .UTF_8; effort { Files . lines (filePath, charset) . forEach ( System .out:: println ) ; } grab ( IOException ex) { System .out. format ( "I/O mistake: %s%n" , ex) ; } } }
Java read file line by line using LineNumberReader
LineNumberReader is a buffered character-stream reader that keeps runway of line numbers. You tin use this class to read a text file line by line.
import java.io. * ; import java.nio.charset. Charset ; import coffee.nio.charset. StandardCharsets ; import java.nio.file. Files ; import coffee.nio.file. Path ; import java.nio.file. Paths ; public class LineNumberReaderExample { public static void chief ( String [ ] args) { Path filePath = Paths . get ( "demo.txt" ) ; Charset charset = StandardCharsets .UTF_8; try ( BufferedReader bufferedReader = Files . newBufferedReader (filePath, charset) ; LineNumberReader lineNumberReader = new LineNumberReader (bufferedReader) ) { String line; while ( (line = lineNumberReader. readLine ( ) ) != aught ) { System .out. format ( "Line %d: %s%n" , lineNumberReader. getLineNumber ( ) , line) ; } } catch ( IOException ex) { System .out. format ( "I/O error: %south%north" , ex) ; } } }
Java read binary file (image file) using BufferedInputStream
All the examples presented in this article so far read textual information from a character-input stream. If you're reading a binary data such as an prototype file then you need to use a byte-input stream.
BufferedInputStream lets you read raw stream of bytes. It also buffers the input for improving performance.
import java.io. * ; import java.nio.file. Files ; import java.nio.file. Paths ; public class BufferedInputStreamImageCopyExample { public static void main ( String [ ] args) { endeavor ( InputStream inputStream = Files . newInputStream ( Paths . get ( "sample.jpg" ) ) ; BufferedInputStream bufferedInputStream = new BufferedInputStream (inputStream) ; OutputStream outputStream = Files . newOutputStream ( Paths . go ( "sample-copy.jpg" ) ) ; BufferedOutputStream bufferedOutputStream = new BufferedOutputStream (outputStream) ) { byte [ ] buffer = new byte [ 4096 ] ; int numBytes; while ( (numBytes = bufferedInputStream. read (buffer) ) != - 1 ) { bufferedOutputStream. write (buffer, 0 , numBytes) ; } } catch ( IOException ex) { System .out. format ( "I/O error: %s%n" , ex) ; } } }
Coffee read file into []byte using Files.readAllBytes()
If you desire to read the entire contents of a file in a byte array and so you lot tin can utilise the Files.readAllBytes() method.
import com.sun.org.apache.xpath.internal.operations. Cord ; import java.io. IOException ; import coffee.nio.file. Files ; import java.nio.file. Paths ; public form FilesReadAllBytesExample { public static void main ( String [ ] args) { try { byte [ ] data = Files . readAllBytes ( Paths . go ( "demo.txt" ) ) ; // Utilize byte data } grab ( IOException ex) { System .out. format ( "I/O error: %s%n" , ex) ; } } }
durochermovenciought1948.blogspot.com
Source: https://www.callicoder.com/java-read-file/
0 Response to "Java Program to Store and Read Objects From a File"
Post a Comment