ข้อมูลองค์ความรู้โดย
ณัฐพล วัฒนวิภัทรเจริญ
ตำแหน่ง IT

Java ตอนที่ 7 การประมวลผลแฟ้ม

ประเภททางด้าน IT หลัก :   Development & Integration
ประเภททางด้าน IT ย่อย :   Java
  ลงข้อมูลเมื่อ 10:41:39 20/03/2013
  Page View (3660) แบ่งปัน

การจัดการกับแฟ้มข้อมูล เป็นงานที่ต้องอาศัยองค์ประกอบสำคัญ 3 ขั้นตอน คือ การเปิดแฟ้มเพื่อนำข้อมูลเข้า การประมวลผลข้อมูล และการนำผลการประมวลผลไปใช้ประโยชน์  ซึ่งขั้นตอนการประมวลผลเป็นส่วนที่ซับซ้อนที่สุดในทุกระบบ ถ้าเป็นเรื่องของ SQL ก็จะมีกิจกรรมการเพิ่ม ลบ แก้ไข หรือเรียกข้อมูลมาดำเนินการ ถ้าเป็นเรื่องของการรายงานผลการเรียน หรือคำนวณค่านายหน้า หรือคำนวณภาษี ก็จะมีเงื่อนไขเพื่อให้ได้ข้อมูลที่ถูกต้องผ่านสูตร หรือสมการที่เฉพาะสำหรับแต่ละเรื่อง

7.1 การใช้งานคลาส File

                แฟ้มข้อมูลในเครื่องคอมพิวเตอร์สามารถนำมาใช้งานผ่านการจัดการด้วยวิธีการที่หลากหลาย ซึ่งภาษาจาวาเตรียมคลาส File ให้ผู้พัฒนาสามารถดำเนินการกับแฟ้มข้อมูลเหล่านั้นได้ตามต้องการ เช่น ตรวจการมีอยู่ของแฟ้ม ตรวจว่าเป็นแฟ้มหรือโฟรเดอร์ ขอข้อมูลขนาดแฟ้ม เป็นต้น

ศึกษาข้อมูลเพิ่มเติมได้จาก http://yn1.yonok.ac.th/burin/javadocs/api/java/io/File.html

ตัวอย่าง 7.1 การแสดงรายละเอียดของแฟ้มข้อมูล

- อ้างอิงจาก http://www.exampledepot.com/egs/java.io/

import java.io.*;

class x {

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

File f = new File("source/x.java");

// java.io.File f = new java.io.File("source/x.java");

System.out.println("getName: "+ f.getName() ); // x.java

System.out.println("getPath: "+ f.getPath() ); // source/x.java

System.out.println("getAbsolutePath: "+ f.getAbsolutePath() );

// c:\source\x.java

System.out.println("exists: "+f.exists());  // true

System.out.println("isFile: "+f.isFile()); // true

System.out.println("isDirectory: "+f.isDirectory()); // false

System.out.println("canWrite: "+f.canWrite()); // true

System.out.println("canRead: "+f.canRead()); // true

System.out.println("length: "+ f.length() ); // 562 Bytes

}

}

ตัวอย่าง 7.2 การย้ายแฟ้ม และสร้างแฟ้มว่างเปล่า

                - ย้ายแฟ้ม x.java ไปเป็น y.java แต่ถ้าไม่มีแฟ้ม x.java อยู่ก่อนหน้านี้ ก็จะพบว่า success = false

boolean success;

File f1 = new File("x.java"); // nothing happen

File f2 = new File("y.java");

success = f1.renameTo(f2);    // move x.java to y.java

System.out.println(success);

File f3 = new File("z.java");

success = f3.createNewFile(); // 0 bytes

ตัวอย่าง 7.3 การย้ายแฟ้มไปต่างโฟรเดอร์

boolean success;

File f1 = new File("x.java");

File f2 = new File("c:/");

success = f1.renameTo( new File(f2, f1.getName()) );

// move x.java to c:\x.java

ตัวอย่าง 7.4 การลบแฟ้ม

success = (new File("y.java")).delete();

System.out.println(success); // true

ตัวอย่าง 7.5 การแสดงจำนวนแฟ้มในโฟรเดอร์

- ตัวอย่างการสั่งประมวลผล DOS> java x c:\windows

import java.io.*;

class x {

public static void main (String args[]) {

  File d = new File( args[0] );

  String n[] = d.list();

  System.out.println( n.length );

}

}

ตัวอย่าง 7.6 การแสดงรายชื่อแฟ้ม และขนาดแต่ละแฟ้มในโฟรเดอร์

- ตัวอย่างการสั่งประมวลผล DOS> java x c:\windows

                - โปรแกรมนี้เหมือนคำสั่ง dir

import java.io.*;

class x {

public static void main (String args[]) {

  File d = new File( args[0] );

  String n[] = d.list();

  for (int i = 0; i < n.length; i++) {

    File f = new File(args[0] + '/' + n[i]);

    System.out.println(i+" : "+n[i]+" Size=" + f.length() );

  }

}

}

ตัวอย่าง 7.7 การแสดงผลรวมของขนาดแฟ้มทั้งหมดในโฟรเดอร์

- ตัวอย่างการสั่งประมวลผล DOS> java x c:\windows

import java.io.*;

class x {

public static void main (String args[]) {

    long sum = 0;

  File d = new File( args[0] );

  String n[] = d.list();

  for (int i = 0; i < n.length; i++) {

    File f = new File(args[0] + '/' + n[i]);

    sum = sum + f.length();

  }

  System.out.println( sum );

}

}

7.2 การใช้งานคลาส FileInputStream

ตัวอย่าง 7.8 การอ่านข้อมูล 2 ตัวอักษรแรก

import java.io.*;

class x {

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

  FileInputStream fin = new FileInputStream("x.java");

  byte b[] = new byte[1];

  int n = fin.read(b); // if end of file will be -1 

  System.out.print((char)b[0]);  // i 

  n = fin.read(b);

  System.out.print(b[0]); // 109

}

}

 

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

                - โปรแกรมนี้คล้ายกับคำสั่ง type ของ DOS หรือ cat ของ Linux

import java.io.*;

class x {

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

int n = 0;

byte b[] = new byte[128];

FileInputStream fin = new FileInputStream("x.java");

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

  for(int i=0;i<n;i++) System.out.print((char)b[i]);

}

System.out.println(n = fin.read(b)); // -1

System.out.println(n); // -1

fin.close();

}

}


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

import java.io.*;

class x {

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

int n = 0;

byte b[] = new byte[128];

int j = 1;

FileInputStream fin = new FileInputStream("x.java");

System.out.print("1 ");

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

  for(int i=0;i<n;i++) {

    System.out.print((char)b[i]);

    if (b[i] == 10) {

      j++;

      System.out.print(j + " ");

    }

  }

}

fin.close();

}

}

7.3 การใช้งานคลาส FileOutputStream

ตัวอย่าง 7.11 การรับตัวอักษรจากแป้นพิมพ์เขียนลงแฟ้ม 3 ตัวอักษร

                - buf เป็นแบบตัวอักษร และ bufx เป็นแบบตัวเลข แต่ผลการ write ไม่แตกต่างกันเลย

import java.io.*;

class x {

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

char buf = (char)System.in.read(); // 1 char + 1 enter = 3 char

FileOutputStream fout = new FileOutputStream("tmp.txt");

fout.write(buf);

int bufx = System.in.read();

fout.write(bufx);

bufx = System.in.read();

fout.write(bufx);

fout.close();

}

}

ตัวอย่าง 7.12 การเขียนรหัสแอสกี้ลงแฟ้มให้มี 256 ตัวอักษร

import java.io.*;

class x {

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

  FileOutputStream fout = new FileOutputStream("tmp.txt");

  for(byte i=0;i<256;i++) { fout.write(i); }

  // for(int i=0;i<256;i++) { fout.write(i); } data type accepted

  fout.close();

}

}

ตัวอย่าง 7.13 การเขียนรหัสแอสกี้ให้ไปเป็นแฟ้มข้อความ

import java.io.*;

class x {

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

  FileOutputStream fout = new FileOutputStream("tmp.txt");

  for(int i=1;i<=10;i++) {

    fout.write(i+47);

    fout.write(13);  // carriage return

    fout.write(10); // linefeed

  }

  fout.close();

}

}

7.4 การใช้งานคลาส 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();

}

}

7.5 การใช้งาน String.split ร่วมกับข้อมูลจาก readLine

ตัวอย่าง 7.18 การแยกข้อมูลด้วย split เมื่ออ่านแฟ้มข้อมูลเข้ามาเป็น String

      -  ตัวอย่างแฟ้มข้อมูล data.txt แบบ csv (Comma Seperated Variable)

101,tom,2000,single

102,somchai,5000,married

import java.io.*;

class x {

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

  int i = 1;

  int tot = 0;

  String b;

  String[] fields;

  FileReader fin = new FileReader("data.txt");

  BufferedReader bin = new BufferedReader (fin);

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

    fields = b.split(",");

    System.out.println(i + " : " + fields[0]);

    System.out.println("Name : " + fields[1]);

    System.out.println("Salary : " + fields[2]);

    System.out.println("Status : " + fields[3]);

    tot = tot + Integer.parseInt(fields[2]);

    i = i + 1;

  }

  System.out.println("Total : " + tot);

  fin.close();

}

}

ตัวอย่าง 7.19 การแยกข้อมูลด้วย split และ String แบบใช้ for

import java.io.*;

class x {

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

  int i = 1;

  int tot = 0;

  String b;

  String[] fields;

  FileReader fin = new FileReader("data.txt");

  BufferedReader bin = new BufferedReader (fin);

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

    fields = b.split(",");

    for(int j=0;j<=3;j++) {

      System.out.println(fields[j]);

    }

    tot = tot + Integer.parseInt(fields[2]);

    i = i + 1;

  }

  System.out.println("Total : " + tot);

  fin.close();

}

}

ตัวอย่าง 7.20 การอ่านข้อมูลและเขียนออกในรูป HTML

- การประมวลผล DOS>explorer data.htm

      - สอนเพิ่มเรื่องหาผลรวมเงินเดือน

      - สอนเพิ่มว่า <input type=radio onclick={alert("a");}>

      - ตัวอย่างแฟ้มข้อมูล data.txt แบบ csv

101,tom,2000,single

102,somchai,5000,married

import java.io.*;

class x {

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

int i = 1;

String b;

String[] fields;

FileReader fin = new FileReader("data.txt");

BufferedReader bin = new BufferedReader (fin);

FileOutputStream fout = new FileOutputStream("data.htm");

BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

PrintStream pout = new PrintStream(bout);

pout.println("<body bgcolor=yellow><table border=1 width=100%>");

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

  fields = b.split(",");

  pout.println("<tr>");

  pout.println("<td>" + i +"</td>");

  pout.println("<td>ID = " + fields[0] + "</td>");

  pout.println("<td>Name = " + fields[1] + "</td>");

  pout.println("<td>Salary = " + fields[2] + "</td>");

  pout.println("<td>Status = " + fields[3] + "</td>");

  pout.println("</tr>");

  i = i + 1;

}

pout.println("</table></body>");

fin.close();

pout.close();

}

}

ตัวอย่าง 7.21 การอ่านแฟ้มข้อมูลมาประมวลผล

- อ่านข้อมูลเก็บลงอาร์เรย์ แล้วนำไปเขียนลงแฟ้ม dataout.txt

- เพิ่มค่าให้ field เงินเดือนจากเดิมอีก 100 บาท

import java.io.*;

class x {

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

int i = 0,d;

String b;

String[] fields;

String[] recs = {"","",""};

String patternStr = ",";

//

FileReader fin = new FileReader("data.txt");

BufferedReader bin = new BufferedReader (fin);

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

   recs[i] = b;

   i = i + 1;

}

fin.close();

//

FileOutputStream fout = new FileOutputStream("data.txt");

BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

PrintStream pout = new PrintStream(bout);

for(int j=0;j<i;j++) {

     fields = recs[j].split(patternStr);

     pout.print(fields[0]+","+fields[1]+",");

     // d = Integer.valueOf(fields[2]).intValue() + 100;

     // pout.print(Double.valueOf(fields[2]).doubleValue() + 100);

     pout.print( Integer.parseInt(fields[2]) + 100 );

     pout.println(","+fields[3]);

}

pout.close();

}

}

 
ตัวอย่าง 7.22 การค้นหาข้อมูลในแฟ้มข้อความด้วย .equals( )

      - รับค่าจากแป้นพิมพ์ด้วย System.in.read

      - นำไปเลือกข้อมูลในแฟ้ม data.txt แล้วแสดงระเบียนที่ตรง

import java.io.*;

class x {

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

int found=0;

char buf;

String b,g = "";

String[] fields;

System.out.println("Wait id and end character with [x]");

buf = (char)System.in.read();

while (buf != 'x') {

    g = g + buf;

    buf = (char)System.in.read();

}

FileReader fin = new FileReader("data.txt");

BufferedReader bin = new BufferedReader (fin);

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

    fields = b.split(",");

    if (fields[0].equals(g)) {

      System.out.println(fields[1]);

      found = 1;

  }

}

if (found == 0) System.out.println("Not found");

fin.close();

}

}

ตัวอย่าง 7.23 การค้นหาข้อมูลในแฟ้มข้อความด้วย .split( )

import java.io.*;

class x {

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

int found=0;

String b,g = "";

String[] fields;

System.out.println("Wait string and enter");

BufferedReader stdin;

stdin = new BufferedReader(new InputStreamReader(System.in));

g = stdin.readLine();

FileReader fin = new FileReader("data.txt");

BufferedReader bin = new BufferedReader (fin);

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

   fields = b.split(g);

   if (fields.length > 1) {

      found = 1;

      fields = b.split(",");

      System.out.println(fields[0] + fields[1] + fields[2] + fields[3]);

   // output = 101tom2000single

   // b = 101,tom,2000,single

   }

}

if (found == 0) System.out.println("Not found");

fin.close();

}

}

ตัวอย่าง 7.24 การผสานแฟ้มข้อความผ่านอาร์เรย์แบบอ่านแฟ้มเดียว

      - แฟ้มพนักงาน data.txt : รหัส,ชื่อ,สกุล,สถานภาพ

31001,tom,dang,A

31002,boy,spy,R

31003,big,chem,A

      - แฟ้มสถานะ เป็นอาร์เรย์ : สถานภาพ,คำอธิบายสถานภาพ

A,Active

R,Retire

import java.io.*;

class j0901 {

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

int i = 0,t1,t2;

String b,status;

// same as String[] fields;

String fields[];

String[] recs1 = new String[10];

String[] recs2 = {"A,Active","R,Retire"};

String patternStr = ",";

//

FileReader fin = new FileReader("data.txt");

BufferedReader bin = new BufferedReader (fin);

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

   recs1[i] = b;

   i = i + 1;

}

fin.close();

t1 = i;

t2 = recs2.length;

//

for(int j=0;j<t1;j++) {

   fields = recs1[j].split(patternStr);

 // fields1 = recs1[j].split(patternStr);

   System.out.print(fields[0] + fields[1] + fields[2]+fields[3]);

   status = fields[3];

   for(int k=0;k<t2;k++) {

        fields = recs2[k].split(patternStr);

        // fields2 = recs2[k].split(patternStr);

        // if (fields2[0].equals(fields1[3])) {

        if (fields[0].equals(status)) {

              System.out.println(fields[1]);

        }

    }

}

}

}

ตัวอย่าง 7.25 การผสานแฟ้มข้อความผ่านอาร์เรย์แบบอ่านแฟ้มสองแฟ้ม

      - แฟ้มพนักงาน data.txt : รหัส,ชื่อ,สกุล,สถานภาพ

      - แฟ้มสถานะ datas.txt : สถานภาพ,คำอธิบายสถานภาพ

import java.io.*;

class x {

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

int i = 0,t1,t2;

String b,status;

String[] fields;

String[] recs1 = {"","","","","",""};

String[] recs2 = new String[2];

FileReader fin = new FileReader("data.txt");

BufferedReader bin = new BufferedReader (fin);

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

   recs1[i] = b;

   i = i + 1;

}

fin.close();

t1 = i;

i = 0;

//

FileReader fin2 = new FileReader("datas.txt");

BufferedReader bin2 = new BufferedReader (fin2);

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

   recs2[i] = b;

   i = i + 1;

}

fin2.close();

t2 = i;

//

for(int j=0;j<t1;j++) {

   fields = recs1[j].split(",");

   System.out.print(fields[0] + fields[1] + fields[2]+fields[3]);

   status = fields[3];

   for(int k=0;k<t2;k++) {

       fields = recs2[k].split(",");

       if (fields[0].equals(status)) {

           System.out.println(fields[1]);

       }

   }

}

}

}

ตัวอย่าง 7.26 การผสาน 3 แฟ้มพนักงาน แฟ้มสถานะ และแฟ้มจังหวัด

      - แฟ้มพนักงาน data.txt : รหัส,ชื่อ,สกุล,สถานภาพ

31001,tom,dang,A,bkk

31002,boy,spy,R,lp

31003,big,chem,A,lp

      - แฟ้มสถานะ เป็นอาร์เรย์ : สถานภาพ,คำอธิบายสถานภาพ

A,Active

R,Retire

      - แฟ้มจังหวัด เป็นอาร์เรย์ : รหัส,ชื่อจังหวัด

lp,Lampang

bkk,Bangkok

 

import java.io.*;

class x {

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

int i = 0,t1,t2,t3;

String b,status,prov;

String[] fields;

String[] recs1 = {"","","","","",""};

String[] recs2 = new String[2];

String[] recs3 = new String[2];

FileReader fin = new FileReader("data.txt");

BufferedReader bin = new BufferedReader (fin);

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

   recs1[i] = b;

   i = i + 1;

}

fin.close();

t1 = i;

i = 0;

//

FileReader fin2 = new FileReader("datas.txt");

BufferedReader bin2 = new BufferedReader (fin2);

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

   recs2[i] = b;

   i = i + 1;

}

fin2.close();

t2 = i;

//

FileReader fin3 = new FileReader("dataprov.txt");

BufferedReader bin3 = new BufferedReader (fin3);

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

   recs3[i] = b;

   i = i + 1;

}

fin3.close();

t3 = i;

//

for(int j=0;j<t1;j++) {

   fields = recs1[j].split(",");

   System.out.print(fields[0] + fields[1] + fields[2]+fields[3]);

   status = fields[3];

   prov = fields[4];

   for(int k=0;k<t2;k++) {

       fields = recs2[k].split(",");

       if (fields[0].equals(status)) {

           System.out.println(fields[1]);

       }

   }

   for(int l=0;l<t3;l++) {

       fields = recs3[l].split(",");

       if (fields[0].equals(prov)) {

           System.out.println(fields[1]);

       }

   }

}

}

}

ตัวอย่าง 7.27 วิเคราะห์ผลโพลล์แบบตัวแปรปกติ

// 101,1,0,1

// 102,0,0,1

import java.io.*;

class poll1 {

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

int i=0;

int questionhave = 14;

int q1=0,q2=0,q3=0;

String b;

String[] fields;

String patternStr = ",";

FileReader fin = new FileReader("pollweb.txt");

BufferedReader bin = new BufferedReader (fin);

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

fields = b.split(patternStr);

q1 += Integer.parseInt(fields[1]);

q2 += Integer.parseInt(fields[2]);

q3 += Integer.parseInt(fields[3]);

i = i + 1;

}

System.out.println("Total questions: " + i);

System.out.println("1 | "+(q1 * 100 / i)+"%");

System.out.println("2 | "+(q2 * 100 / i)+"%");

System.out.println("3 | "+(q3 * 100 / i)+"%");

fin.close();

}

}

ตัวอย่าง 7.28 วิเคราะห์ผลโพลล์แบบอาร์เรย์

// 101,1,0,1,0,1,1,1,1,1,0,1,0,0,1

// 102,1,0,1,1,1,1,1,0,1,0,0,1,1,1

import java.io.*;

class poll2 {

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

int i=0;

int questionhave = 14;

int q[] = new int[questionhave];

String b;

String[] fields;

String patternStr = ",";

FileReader fin = new FileReader("pollweb.txt");

BufferedReader bin = new BufferedReader (fin);

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

fields = b.split(patternStr);

// q[1] += Integer.parseInt(fields[1]);

// q[2] += Integer.parseInt(fields[2]);

// q[14] += Integer.parseInt(fields[14]);

for (int j=1;j<=questionhave-1;j++)

q[j] += Integer.parseInt(fields[j]);

i = i + 1;

}

System.out.println("Total questions: " + i);

// System.out.println(1+":"+q[1]+" | "+(q[1] * 100 / i)+"%");

// System.out.println(14+":"+q[14]+" | "+(q[14] * 100 / i)+"%");

for (int j=1;j<=questionhave-1;j++)

System.out.println(j+":"+q[j]+" | "+(q[j] * 100 / i)+"%");

fin.close();

}

}

 

7.6 การปรับปรุงแฟ้มข้อความ

                การปรับปรุงข้อมูลแบบตามลำดับ (Sequential Processing) คือการอ่านข้อมูลจากแฟ้มข้อมูลทีละระเบียนมาเก็บไว้ในสื่อ เช่น อาร์เรย์ หรือเทปแม่เหล็ก เป็นต้น จากนั้นจึงปรับปรุงข้อมูลในอาร์เรย์จนแล้วเสร็จ แล้วนำข้อมูลทั้งหมดกลับไปเขียนทับลงในแฟ้มข้อมูลเดิม ทำให้แฟ้มข้อมูลมีข้อมูลใหม่ที่ได้รับการปรับปรุง

+ http://yn1.yonok.ac.th/burin/javadocs/api/java/io/FileOutputStream.html

+ http://yn1.yonok.ac.th/burin/javadocs/api/java/io/PrintStream.html

+ http://yn1.yonok.ac.th/burin/javadocs/api/java/io/BufferedOutputStream.html

คลาสที่เกี่ยวข้องกับการอ่านแฟ้มข้อมูล

      FileReader fin = new FileReader("input.txt");

      BufferedReader bin = new BufferedReader (fin);

คลาสที่เกี่ยวข้องกับการเขียนลงแฟ้มข้อมูล

FileOutputStream fout = new FileOutputStream("output.txt");

BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

PrintStream pout = new PrintStream(bout);

ตัวอย่าง 7.29 การสร้างแฟ้มและเพิ่มข้อมูลทีละตัวอักษร

                - คลาส FileOutputStream ไม่มี print หรือ println ให้ใช้

import java.io.*;

class x {

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

    FileOutputStream fout = new FileOutputStream("d.txt");

    fout.write(‘a’);

    fout.write(65);  // A

    fout.close();

}

}

ตัวอย่าง 7.30 การสร้างแฟ้มและเพิ่มข้อมูลทีละอาร์เรย์

import java.io.*;

class x {

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

    byte a[] = {'a','b','c','d','e'};

    FileOutputStream fout = new FileOutputStream("d.txt");

    fout.write(a);

    fout.close();

}

}

ตัวอย่าง 7.31 การสร้างแฟ้มและเพิ่มข้อมูลทีละบรรทัด

import java.io.*;

class x {

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

    FileOutputStream fout = new FileOutputStream("d.txt");

    PrintStream pout = new PrintStream(fout);

    pout.println("101,Mr.Koanchanok Narittom,2500");

    pout.println("102,Ms.Kyle Burin,10000");

    pout.close();

}

}

ตัวอย่าง 7.32 การสร้างแฟ้มและเพิ่มข้อมูลทีละบรรทัด

import java.io.*;

class x {

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

    FileOutputStream fout = new FileOutputStream("d.txt");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    pout.println("101,Mr.Koanchanok Narittom,2500");

    pout.println("102,Ms.Kyle Burin,10000");

    pout.println("103,Ms.Sala Romeo,55000");

    pout.println("104,Mr.Jib Jibjib,1000");

    pout.println("105,Ms.Maya Noar,3500");

    pout.close();

    System.out.println("Create 5 records : completely");

}

}

ตัวอย่าง 7.33 การเพิ่มข้อมูล

import java.io.*;

class x {

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

    String bufid ="123";

    String bufname="tom";

    String bufsalary="5000";

    String b;

    String ar[] = new String[10];

    FileReader fin = new FileReader("d.txt");

    BufferedReader bin = new BufferedReader (fin);

    int i = 0;

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

      ar[i] = b;

      i = i + 1;

    }   

    fin.close();

    int tot = i;

    //

    FileOutputStream fout = new FileOutputStream("d.txt");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    i = 0;

    while (i < tot) {     

      pout.println(ar[i]);    

      i = i + 1;

    }

    pout.println(bufid + "," + bufname + "," + bufsalary);

    pout.close();

    System.out.println("Insert : completely");

}

}

ตัวอย่าง 7.34 การลบข้อมูล

import java.io.*;

class x {

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

    String bufid = "123";

    String b;

    String ar[] = new String[10];

    FileReader fin = new FileReader("d.txt");

    BufferedReader bin = new BufferedReader (fin);

    int i = 0;

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

      ar[i] = b;

      i = i + 1;

    }   

    fin.close();

    int tot = i;

    //

    FileOutputStream fout = new FileOutputStream("updtxt.dat");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    i = 0;

    while (i < tot) {     

      if (bufid.equals(ar[i].substring(0,3))) {

        System.out.println("Delete : completely");

      } else {

        pout.println(ar[i]);

      }

      i = i + 1;

    }

    pout.close();

    System.out.println("Delete : completely");

 

}

}

ตัวอย่าง 7.35 การแก้ไขข้อมูล

import java.io.*;

class x {

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

    String bufid ="123";

    String bufname="newtom";

    String bufsalary="10000";

    String b;

    String ar[] = new String[10];

    FileReader fin = new FileReader("d.txt");

    BufferedReader bin = new BufferedReader (fin);

    int i = 0;

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

      ar[i] = b;

      i = i + 1;

    }   

    fin.close();

    int tot = i;

    //

    FileOutputStream fout = new FileOutputStream("d.txt");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    i = 0;

    while (i < tot) {     

      if (bufid.equals(ar[i].substring(0,3))) {

        pout.println(bufid + "," + bufname + "," + bufsalary);

        System.out.println("Update : completely");

      } else {

        pout.println(ar[i]);

      }

      i = i + 1;

    }

    pout.close();

}

}

ตัวอย่าง 7.36 การปรับปรุงข้อมูลที่เชื่อมโยงผ่านระบบเมนู

import java.io.*;

import java.lang.*;

import java.util.regex.*; // ใช้ class Pattern และ Matcher เพื่อแทนที่ตัวอักษร

class updtxt {

  static BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));  

// โปรแกรมหลักที่เริ่มทำงานและคุมการทำงานทั้งหมด

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

  String waitopt;

  String buf;

  waitopt="Wait your choice [menu, bye, 0, 1, 2, 3, 4, 5, 6, 7, 8] : ";

  displaymenu();

  System.out.print(waitopt);

  buf = stdin.readLine();

  while (!buf.equals("0")) {

    if (buf.equals("0") || buf.equals("bye")) {

      System.out.println("Bye Bye"); 

      break;

    } else if (buf.equals("1")) {

      create5();

      buf = " ";

    } else if (buf.equals("2") || buf.equals("l")) {

      list("updtxt.dat");

      buf = " ";

    } else if (buf.equals("3")) {

      listnum();

      buf = " ";

    } else if (buf.equals("4")) {

      converttohtm();

      buf = " ";

    } else if (buf.equals("5") || buf.equals("e")) {

      editnamesalary();

      buf = " ";

    } else if (buf.equals("6") || buf.equals("d")) {

      deleteonid();

      buf = " ";

    } else if (buf.equals("7") || buf.equals("a")) {

      addnew();

      buf = " ";

    } else if (buf.equals("8") || buf.equals("s")) {

      totalsalary();

      buf = " ";

    } else if (buf.equals("menu") || buf.equals("m")) {

      displaymenu();

      buf = " ";

    } else {

      System.out.print(waitopt);

      buf = stdin.readLine();

      // buf = (char)System.in.read(); // for 1 character

    }

  }

}

// แสดงตัวเลือก

  static void displaymenu () {

    System.out.println("0 : bye bye");

    System.out.println("1 : Create 3 fields, 5 records for updtxt.dat");

    System.out.println("2 : List all records");

    System.out.println("3 : List with line numbers");

    System.out.println("4 : Convert updtxt.dat to updtxt.htm");

    System.out.println("5 : Edit name, salary on id");

    System.out.println("6 : Delete on id");

    System.out.println("7 : Add new record");

    System.out.println("8 : Total salary");

  }

// สร้างแฟ้มและระเบียนตัวอย่าง 5 ระเบียน

  public static void create5 () throws IOException {

    FileOutputStream fout = new FileOutputStream("updtxt.dat");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    pout.println("101,Mr.Koanchanok Narittom,2500");

    pout.println("102,Ms.Kyle Burin,10000");

    pout.println("103,Ms.Sala Romeo,55000");

    pout.println("104,Mr.Jib Jibjib,1000");

    pout.println("105,Ms.Maya Noar,3500");

    System.out.println("Create 5 records : completely");

    pout.close();

  }

// อ่านระเบียนข้อมูลมาแสดงผล

  public static void list (String f) throws IOException {

    int n = 0;

    byte b[] = new byte[128];

    FileInputStream fin = new FileInputStream(f);

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

      for(int i=0;i<n;i++) {

        System.out.print((char)b[i]);

      }

    }

    fin.close();

  }

// อ่านระเบียนข้อมูลมาแสดง โดยรับชื่อแฟ้มจากแป้นพิมพ์ และแสดงเลขบรรทัด

  public static void listnum () throws IOException {

    String buf;

    System.out.print("Wait filename to listing : ");

    buf = stdin.readLine();

    int n = 0;

    int l = 1;

    byte b[] = new byte[125];

    FileInputStream fin = new FileInputStream(buf);

    System.out.print(l + " : ");

    l = l + 1;

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

      for(int i=0;i<n;i++) {

        if (b[i] != 13) { 

          if (b[i] == 10) {

             System.out.println();

             System.out.print(l + " : ");

             l = l + 1;

          } else System.out.print((char)b[i]);

        } 

      }

    }

    fin.close();

    System.out.println();    System.out.println("======");

  }

// อ่านระเบียนข้อมูลแล้วเขียนลงแฟ้มใหม่ในรูปของ HTML

  public static void converttohtm () throws IOException {

    int i = 1;

    String b;

    //

    FileReader fin = new FileReader("updtxt.dat");

    BufferedReader bin = new BufferedReader (fin);

    // in j0605.java will use character

    FileOutputStream fout = new FileOutputStream("updtxt.htm");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    //

    pout.println("<style type='text/css'>");

    pout.println("td{font-family:fixedsys;font-size:10pt;}");

    pout.println("</style>");

    pout.println("<body bgcolor=red><table width=90% bgcolor=yellow>");

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

      // String bnew = b.replace('a', 'A');

      Pattern pattern = Pattern.compile("&");

      Matcher matcher = pattern.matcher(b);

      b = matcher.replaceAll("&#38;");

      //

      pattern = Pattern.compile(">");

      matcher = pattern.matcher(b);

      b = matcher.replaceAll("&gt;");

      //

      pattern = Pattern.compile("<");

      matcher = pattern.matcher(b);

      b = matcher.replaceAll("&lt;");

      //

      pattern = Pattern.compile(" ");

      matcher = pattern.matcher(b);

      b = matcher.replaceAll("&nbsp;");

      pout.println("<tr>");

      pout.println("<td>"+i+"</td>");

      pout.println("<td>"+b+"</td>");

      pout.println("</tr>");

      i = i + 1;

    }

    pout.println("</table></body>");

    fin.close();

    pout.close();

    System.out.println("Use IE to open updtxt.htm");

  }

// แก้ไขเงินชื่อและเงินเดือนตามรหัส

  public static void editnamesalary () throws IOException {

    String bufid,bufname,bufsalary;

    System.out.print("Wait id : ");

    bufid = stdin.readLine();

    System.out.print("Wait name : ");

    bufname = stdin.readLine();

    System.out.print("Wait salary : ");

    bufsalary = stdin.readLine();

    String b;

    String ar[] = new String[10];

    FileReader fin = new FileReader("updtxt.dat");

    BufferedReader bin = new BufferedReader (fin);

    int i = 0;

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

      ar[i] = b;

      i = i + 1;

    }   

    fin.close();

    //

    int tot = i;

    FileOutputStream fout = new FileOutputStream("updtxt.dat");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    i = 0;

    while (i < tot) {     

      if (bufid.equals(ar[i].substring(0,3))) {

        pout.println(bufid + "," + bufname + "," + bufsalary);

        System.out.println("Update : completely");

      } else {

        pout.println(ar[i]);

      }

      i = i + 1;

    }

    pout.close();

  }

// ลบข้อมูลตามรหัส

  public static void deleteonid () throws IOException {

    String bufid;

    System.out.print("Wait id : ");

    bufid = stdin.readLine();

    String b;

    String ar[] = new String[10];

    FileReader fin = new FileReader("updtxt.dat");

    BufferedReader bin = new BufferedReader (fin);

    int i = 0;

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

      ar[i] = b;

      i = i + 1;

    }   

    fin.close();

    //

    int tot = i;

    FileOutputStream fout = new FileOutputStream("updtxt.dat");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    i = 0;

    while (i < tot) {     

      if (bufid.equals(ar[i].substring(0,3))) {

        System.out.println("Delete : completely");

      } else {

        pout.println(ar[i]);

      }

      i = i + 1;

    }

    pout.close();

  }

// เพิ่มข้อมูลใหม่

  public static void addnew () throws IOException {

    String bufid,bufname,bufsalary;

    System.out.print("Wait id : ");

    bufid = stdin.readLine();

    System.out.print("Wait name : ");

    bufname = stdin.readLine();

    System.out.print("Wait salary : ");

    bufsalary = stdin.readLine();

    String b;

    String ar[] = new String[10];

    FileReader fin = new FileReader("updtxt.dat");

    BufferedReader bin = new BufferedReader (fin);

    int i = 0;

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

      ar[i] = b;

      i = i + 1;

    }   

    fin.close();

    //

    int tot = i;

    FileOutputStream fout = new FileOutputStream("updtxt.dat");

    BufferedOutputStream bout = new BufferedOutputStream(fout,1024);

    PrintStream pout = new PrintStream(bout);

    i = 0;

    while (i < tot) {     

      pout.println(ar[i]);    

      i = i + 1;

    }

    pout.println(bufid + "," + bufname + "," + bufsalary);

    System.out.println("Insert : completely");

    pout.close();

  }

// แสดงผลรวมเงินเดือน

  public static void totalsalary () throws IOException {

    String b,fld[];

    FileReader fin = new FileReader("updtxt.dat");

    BufferedReader bin = new BufferedReader (fin);

    int i = 0,total = 0;

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

       fld = b.split(",");   

       total = total + Integer.parseInt(fld[2]);

       i = i + 1;

    }   

    fin.close();

    System.out.println("Total salary = " + total);

  }

}

 

สรุปเนื้อหาท้ายบท

- คลาส File ในแพกเกจ java.io.*

                มีเมธอดที่ทำให้แสดงรายละเอียดของแฟ้ม สามารถเปลี่ยนชื่อแฟ้ม ย้ายแฟ้ม หรือลบแฟ้มได้

- คลาส FileInputStream หรือ FileReader ในแพกเกจ java.io.*

                ทำให้อ่านข้อมูลทีละตัวอักษรเข้ามาในอาร์เรย์ โดยผลการใช้เมธอด read() จะได้ค่าเป็น จำนวนตัวอักษรที่อ่านเข้าอาร์เรย์ได้ แต่ถ้าได้ค่ามาเป็น -1 แสดงว่าไม่สามารถอ่านข้อมูลได้อีกแล้ว หรือจบแฟ้มนั่นเอง

- การอ่านข้อมูลทีละตัวอักษร

byte b[] = new byte[1];

FileInputStream fin = new FileInputStream("x.java");

int n = fin.read(b);

System.out.print((char)b[0]);

n = fin.read(b);

System.out.print((char)b[0]);

- คลาส FileOutputStream สำหรับเขียนแฟ้มข้อมูล หรือปรับปรุงแฟ้มข้อมูล

char buf = (char)System.in.read(); // 1 char + 1 enter = 3 char

FileOutputStream fout = new FileOutputStream("tmp.txt");

fout.write(buf);

int bufx = System.in.read();

fout.write(bufx);

bufx = System.in.read();

fout.write(bufx);

fout.close();

 

- คลาส FileReader สำหรับอ่านแฟ้มข้อมูล เขียนแบบนี้ไม่ต่างกับ FileInputStream

FileReader fin = new FileReader("x.java");

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

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

   i = i + 1;

}

- คลาส FileReader ที่ทำงานร่วมกับ BufferedReader

import java.io.*;

String b;

FileReader fin = new FileReader("x.java");

BufferedReader bin = new BufferedReader (fin);

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

ที่มาจาก www.thaiall.com



องค์ความรู้ที่มีผู้อ่านมากสุด
Java ตอนที่ 3 รับข้อมูลทางแป้นพิมพ์ และแสดงผล
การติดต่อกับผู้ใช้เป็นความสามารถของภาษาคอมพิวเตอร์ที่จะเปิดให้ผู้ใช้เข้าควบคุมการทำงานของเครื่องคอมพิวเตอร์ ซึ่งการติดต่อของอุปกรณ์อิเล็กทรอนิกส์หรือฮาร์ดแวร์กับผู้ใช้นั้นสามารถกระทำได้หลายวิธี เช่น แป้นพิมพ์ (Keyboard) เมาส์ (Mouse) หรือเซนเซอร์ต่าง ๆ แต่ที่นิยมใช้และมีประสิทธิภาพสำหรับงานทั่วไปคือการรับคำสั่งจากผู้ใช้ผ่านแป้นพิมพ์ ส่วนการตอบสนองของเครื่องคอมพิวเตอร์ให้ผู้ใช้ได้ทราบถึงผลของการประมวลผลคำสั่งที่ได้รับจากผู้ใช้ก็คือจอภาพ (Screen) และเครื่องพิมพ์ (Printer) เป็นต้น ในบทนี้จะกล่าวถึงการเชื่อมต่อกับผู้ใช้ที่รับข้อมูลผ่านแป้นพิมพ์ และการแสดงผลให้ผู้ใช้ทราบทางจอภาพเป็นหลัก

โดย... ณัฐพล วัฒนวิภัทรเจริญ

่Java ตอนที่ 10 แอพเพลท
เมื่อสร้าง Applet ซึ่งเป็นแฟ้ม .class แล้ว จะต้องสร้างแฟ้ม .htm เพื่อเรียกใช้ Applet แสดงผล ซึ่งมีหลักการเช่นเดียวกับการสร้าง Application ที่ประมวลผลใน console คือได้โปรแกรม .class ก็ต้องสั่งประมวลผลผ่านโปรแกรม java แต่ Applet มีวิธีเรียกใช้ที่ต่างออกไป ซึ่งทำได้ 2 วิธี หลังสร้างแฟ้ม .htm แล้ว

โดย... ณัฐพล วัฒนวิภัทรเจริญ

ลำดับการทำงาน 3D Animation
โครงการสร้าง 3D Animation ขนาดใหญ่จะเป็นไปตามลำดับการทำงานที่เฉพาะเจาะจง แม้แต่โครงการเล็กๆ ที่มีศิลปินเพียง 1 – 2 คนก็ยังใช้ประโยชน์จากการทำงานตามลำดับขั้นที่โครงงานใหญ่ๆ ที่มีความพร้อมสูงใช้กัน โดยอาจจะนำมาใช้เป็นบางส่วนหรือทั้งหมดเลยก็มี

โดย... ณัฐพล วัฒนวิภัทรเจริญ

Java ตอนที่ 1 ความรู้เบื้องต้นเกี่ยวกับจาวา
ภาษาจาวา (Java Language) คือ ภาษาคอมพิวเตอร์ที่ถูกพัฒนาขึ้นโดยบริษัท ซันไมโครซิสเต็มส์ เป็นภาษาสำหรับเขียนโปรแกรมที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming) โปรแกรมที่เขียนขึ้นถูกสร้างภายในคลาส ดังนั้นคลาส (Class) คือที่เก็บเมทธอด (Method) หรือพฤติกรรม (Behavior) ซึ่งมีสถานะ (State) และรูปพรรณ (Identity) ประจำพฤติกรรม

โดย... ณัฐพล วัฒนวิภัทรเจริญ

Java ตอนที่ 13 จาร์
Jar (ava Archieve) หมายถึง ที่เก็บเอกสาร เป็นแฟ้มที่มีสกุลเป็น .jar สามารถเก็บแฟ้มต่าง ๆ ได้เหมือนกับแฟ้ม .zip แต่ผู้พัฒนาสามารถเรียกใช้โปรแกรมภายในแฟ้ม .jar ได้ทันที โดยไม่ต้องแตกแฟ้มออกมาก่อน แล้วจึงเรียกใช้เหมือนกับแฟ้ม .zip

โดย... ณัฐพล วัฒนวิภัทรเจริญ

Java ตอนที่ 14 เจเอสพี
ภาษาเจเอสพี (JSP = Java Server Pages) คือ ภาษาสคริปต์ที่ทำงานบนเครื่องบริการ เช่นเดียวกับภาษา perl, php หรือ asp มีโครงสร้างภาษาแบบจาวา หรือภาษาซี โดยมีตัวแปลภาษาที่ถูกพัฒนาโดยบริษัทซันไมโครซิสเต็ม ซึ่งเป็นเทคโนโลยีของจาวา สำหรับสร้างรหัสเอชทีเอ็มแอล (HTML)

โดย... ณัฐพล วัฒนวิภัทรเจริญ

มารู้จักกราฟฟิคการ์ด (VGA Card)
กราฟฟิคกา่ร์ดหรือที่ภาษาทั่วไปเขาเรียกกันว่าการ์ดจอนั่นเอง คุณสมบัติของมันคือจะมีหน้าที่ช่วย CPU ในการประมวลผล คำสั่งเกี่ยวกับกราฟฟิค อาทิเช่น การทำงานด้านรูปภาำำพ การเล่นเกมส์ เป็นต้น เป็นหัวใจสำคัญในการทำงานด้านกราฟฟิค เลยทีเดียว หากคุณมีกราฟฟิคการ์ดที่มีความสามารถไม่สูงพอ ณ ขณะที่คุณทำการประมวลผลด้านกราฟฟิคที่มี ความซับซ้อนสูงก็จะทำให้เครื่องคอมพิวเตอร์ของคุณเสียเวลาไปกับมันอย่า่งมากและคุณก็จะรู้สึกว่าเครื่องคอมพิวเตอร์ ของคุณนั้นทำงานช้าเกินไป

โดย... ณัฐพล วัฒนวิภัทรเจริญ

การประยุกต์ใช้งานอินทราเน็ตและเอ็กทราเน็ตเพื่อสนับสนุนการค้าบนเวบ (Intranet/Extranet)
ตามความหมายแล้ว ทั้งสองระบบนี้ หมายถึง ระบบเครือข่ายที่สร้างขึ้นจากการนำหลักการหรือระบบการทำงานของอินเทอร์เนตมาใช้งานภายในองค์กร (Intranet) และระหว่างองค์กรเฉพาะกลุ่ม (Extranet) ซึ่งหน้าที่ต่างๆในการใช้งานไม่ว่าจะเป็นเรื่องเว็บบราวเซอร์ การรับ-ส่งอีเมล์ การทำการโอนย้ายแฟ้มข้อมูล (FTP) จะเหมือนกันกับที่ใช้อยู่บนระบบอินเทอร์เน็ตปกติ ซึ่งระบบนี้ทำงานด้วยการตั้งอินทราเน็ตเซิร์ฟเวอร์ขึ้นมาภายในองค์กรหรือศูนย์กลางของกลุ่มองค์กรของเรา เช่น ระหว่างบริษัทของเรากับกับกลุ่มตัวแทนจำหน่าย

โดย... ณัฐพล วัฒนวิภัทรเจริญ

ระบบ SAN (Storage Area Network)
ยุคการจัดการความรอบรู้ได้เริ่มต้นขึ้นแล้ว อิเล็กทรอนิกส์ทำให้ระบบการเรียนรู้ต่าง ๆ เปลี่ยนแปลงไปมาก เรามีระบบการเรียนรู้แบบใหม่ที่ชื่อ eLearning ใช้สื่อข้อมูลเป็นแหล่งการเรียนรู้ใหญ่ มีระบบ eLibrary เก็บข้อมูลหนังสือที่เป็นแบบ eBook รวมทั้งสิ่งพิมพ์ประเภท eMagazine eJournal และ eProceeding ระบบ e ยังทำให้เกิดการเรียนรู้แบบ eEducation on Demand หรือ eEOD

โดย... ณัฐพล วัฒนวิภัทรเจริญ

Java ตอนที่ 12 แพ็คเกจ
ในอนาคต หากมี .class หลายร้อยแฟ้ม และเก็บแยก directory อย่างเป็นระเบียบ เช่น ห้อง c:\java\bin\aaa เก็บ .class 100 แฟ้ม และ c:\java\bin\burin เก็บ . class 150 แฟ้ม การเรียกใช้จากแต่ละห้อง สามารถทำได้ด้วยการใช้คำสั่ง import แต่ class ที่อยู่ในแต่ละห้องจะประกาศด้วยคำสั่ง package และมีข้อมูลว่าแต่ละห้อง จะต้องมีชื่อ class ที่ไม่ซ้ำกัน

โดย... ณัฐพล วัฒนวิภัทรเจริญ