One of the java.io.reader implementations named BufferedReader gives efficient API to read character input line by line. As you can assume from the name of the class itself that it create an in memory cache or buffer of the given file and load/re-load the buffer on demand. If you are working with a large file and have enough primary memory, then you may use large buffer size for better performance. One of the constructors of BufferedReader takes the size of the buffer as an argument.
Code Snippet to create Buffered Reader.
1 2 3 4 |
final File file = new File("<<file_name>>"); final FileReader fileReader = new FileReader(file); final BufferedReader bufferedReader = new BufferedReader(fileReader, 256); final String line = bufferedReader.readLine(); |
Complete Sample Code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
package com.ourownjava.corejava.file; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; /** * * @author ourownjava.com * */ public class BufferedReaderExample { private void readLine(File file) throws IOException{ if(null != file){ BufferedReader reader = null; FileReader fileReader = null; try { String line; fileReader = new FileReader(file); reader = new BufferedReader(fileReader, 256); while( (line = reader.readLine()) != null ){ System.out.println(line); } } catch (IOException e) { e.printStackTrace(); throw new IOException(e.getMessage()); }finally{ if(fileReader != null){ fileReader.close(); } if(reader != null ){ reader.close(); } } }else{ throw new IllegalArgumentException("File reference is null"); } } public static void main(String args[]) throws IOException{ new BufferedReaderExample().readLine(new File("/mnt/java/sample.file")); } } |