The following code uses FileInputStream to read byte from a file.
It uses the try-resource syntax to manage to close FileInputStream.
Two types of exceptions are listed in the catch statements.
import java.io.Closeable; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Main { public static void main(String[] args) { String dataSourceFile = "Main.java"; try (FileInputStream fin = new FileInputStream(dataSourceFile)) { byte byteData; while ((byteData = (byte) fin.read()) != -1) { System.out.print((char) byteData); }/*from w w w . j av a 2 s .c om*/ } catch (FileNotFoundException e) { FileUtil.printFileNotFoundMsg(dataSourceFile); } catch (IOException e) { e.printStackTrace(); } } } class FileUtil { // Prints the location details of a file public static void printFileNotFoundMsg(String fileName) { String workingDir = System.getProperty("user.dir"); System.out.println("Could not find the file '" + fileName + "' in '" + workingDir + "' directory "); } // Closes a Closeable resource such as an input/output stream public static void close(Closeable resource) { if (resource != null) { try { resource.close(); } catch (IOException e) { e.printStackTrace(); } } } }