การใช้งานคลาส FileReader

การใช้งานคลาส FileReader

คลาส FileReader จะทำงานคล้ายกับ FileInputStream แต่ตัวรับของ FileInputStream จะเข้ามาเป็นตัวเลข เช่น Byte และใช้ร่วมกับ BufferedReader ไม่ได้ หากต้องการใช้ ReadLine ก็ต้องใช้ FileReader

ตัวอย่าง 7.14 เปรียบเทียบการอ่านด้วย FileReader และ FileInputStream

import java.io.*;

class x {

public static void main (String args[]) throws IOException {

int i = 0, n = 0;

char b[] = new char[1];

FileReader fin1 = new FileReader(“x.java”);

if ((n =  fin1.read(b)) != -1) { System.out.println( b[0] );} // i

fin1.close();

//

byte c[] = new byte[1]; // ถ้าใช้ Char จะ compile ไม่ผ่าน

FileInputStream fin2 = new FileInputStream(“x.java”);

// required byte for fin2.read()

if ((n =  fin2.read(c)) != -1) { System.out.println( (char)c[0] );} // i

fin2.close();

}

}

 

ตัวอย่าง 7.15 การอ่านข้อมูลจากแฟ้มทีละตัวอักษรด้วย FileReader

import java.io.*;

class x {

public static void main (String args[]) throws IOException {

  int i = 1, n = 0;

  char b[] = new char[1];

  FileReader fin = new FileReader(“x.java”);

  while ((n =  fin.read(b)) != -1) {

    System.out.println(i+” : “+b[0]);

    i = i + 1;

  }

  fin.close();

}

}

ตัวอย่าง 7.16 การอ่านข้อมูลจากแฟ้มทีละ 16 ตัวอักษรด้วย FileReader

import java.io.*;

class x {

public static void main (String args[]) throws IOException {

  int i = 1, n = 0;

  char b[] = new char[16];

  FileReader fin = new FileReader(“x.java”);

  while ((n =  fin.read(b)) != -1) {

    System.out.print((i-1)*16 + ” – ” + (i*16-1) + “:”);

    System.out.print(“”+b[0]+b[1]+b[2]+b[3]+b[4]+b[5]+b[6]+b[7]+b[8]);

    System.out.println(“”+b[9]+b[10]+b[11]+b[12]+b[13]+b[14]+b[15]);

    i = i + 1;

  }

  fin.close();

}

}

ตัวอย่าง 7.17 การอ่านข้อมูลจากแฟ้มทีละบรรทัดด้วย FileReader และ BufferedReader

import java.io.*;

class x {

public static void main (String args[]) throws IOException {

  int i = 1;

  String b;

  FileReader fin = new FileReader(“x.java”);

  BufferedReader bin = new BufferedReader (fin);

  // System.out.println(b = bin.readLine()); result is String in b

  while ((b =  bin.readLine()) != null) {

    System.out.println(i + ” : ” +b);

    i = i + 1;

  }

  System.out.println(b = bin.readLine()); // null

  fin.close();

}

}