10 Ways to Read Files using Java Code


Table of Contents

  1. Using Scanner
  2. Using InputStream
  3. Using BufferedReader
  4. Using FileInputStream
  5. Using InputStreamReader
  6. Using Files.newInputStream
  7. Using FileChannel
  8. Using FileReader
  9. Using DataInputStream
  10. Using RandomAccessFile


1. Using Scanner


    Scanner scanner = new Scanner(new File("data.txt"));
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        System.out.println(line);
    }
    scanner.close();
    

2. Using InputStream


    InputStream inputStream = new FileInputStream("data.txt");
    int data = inputStream.read();
    while(data != -1) {
        System.out.print((char) data);
        data = inputStream.read();
    }
    inputStream.close();
    

3. Using BufferedReader


    BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
    reader.close();
    

4. Using FileInputStream


    FileInputStream fis = new FileInputStream("data.txt");
    byte[] buffer = new byte[10];
    StringBuilder sb = new StringBuilder();
    while (fis.read(buffer) != -1) {
        sb.append(new String(buffer));
        buffer = new byte[10];
    }
    fis.close();
    System.out.println(sb.toString());
    

5. Using InputStreamReader


    FileInputStream fis = new FileInputStream("data.txt");
    InputStreamReader isr = new InputStreamReader(fis);
    char[] buffer = new char[10];
    StringBuilder sb = new StringBuilder();
    while (isr.read(buffer) != -1) {
        sb.append(new String(buffer));
        buffer = new char[10];
    }
    isr.close();
    System.out.println(sb.toString());
    

6. Using Files.newInputStream


    Path path = Paths.get("data.txt");
    try (InputStream in = Files.newInputStream(path)) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }
    

7. Using FileChannel


    RandomAccessFile aFile = new RandomAccessFile("data.txt", "r");
    FileChannel inChannel = aFile.getChannel();
    ByteBuffer buffer = ByteBuffer.allocate(1024);
    while(inChannel.read(buffer) > 0) {
        buffer.flip();
        for (int i = 0; i < buffer.limit(); i++) {
            System.out.print((char) buffer.get());
        }
        buffer.clear();
    }
    inChannel.close();
    aFile.close();
    

8. Using FileReader


    FileReader fr = new FileReader("data.txt");
    int i;
    while ((i = fr.read()) != -1)
        System.out.print((char) i);
    fr.close();
    

9. Using DataInputStream


    DataInputStream dis = new DataInputStream(new FileInputStream("data.txt"));
    byte[] datainBytes = new byte[dis.available()];
    dis.readFully(datainBytes);
    dis.close();
    String content = new String(datainBytes, 0, datainBytes.length);
    System.out.println(content);
    

10. Using RandomAccessFile


    RandomAccessFile file = new RandomAccessFile("data.txt", "r");
    String str;
    while ((str = file.readLine()) != null) {
        System.out.println(str);
    }
    file.close();
    

Comments & Discussion

Facing issues? Have questions? Post them here! We're happy to help!