ทำงานกับ File และStream

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

The InetAddress Class.
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
โครงสร้างโปรแกรมภาษา C
การจัดการความผิดพลาด
BC322 ครั้งที่ 6 Text file BC322 : computer Programming (Week6)
6. โครงสร้างข้อมูลแบบแฟ้ม
File.
การใช้ PHP ติดต่อกับ Text File
โครงสร้างภาษาซี.
ASP [# 9] การติดต่อข้อมูล Text Files
ครั้งที่ 7 Composition.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
ASP & Text File Computer Science, BUU.
Selected Topics in IT (Java)
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
การสืบทอด (Inheritance)
SC131 ภาคต้น 2550 การอ่านและเขียนสตรีม
การจัดการแฟ้มข้อมูล.
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
File Stream File Stream หมายถึง ท่อส่งข้อมูลไฟล์จากต้นทางไปยังปลายทาง
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
คลาสและวัตถุ (4) (Class & Object)
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
Inheritance การสืบทอดคลาส
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
อาร์เรย์ หรือแถวลำดับ (Array)
input from keyboard มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
บทที่ 6 เมธอด.
เริ่มต้นเขียนโปรแกรม Java
Handling Exceptions & database
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
การเขียนโปรแกรม ตอนที่ 1 (ต่อ)
การใช้ PHP ติดต่อกับ Text File
บทที่ 3 Class and Object (2).
บทที่ 2 การแสดงผลและรับข้อมูล
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Java Programming Java Structure and Datatype,Variable
สายอักขระ เขียนโปรแกรม Java เบื้องต้น.
การจัดการแฟ้มข้อมูล.
การแสดงผลและการรับข้อมูล (Data Output and Input)
โครงสร้าง ภาษาซี.
Java Network Programming 1
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป
การกระทำทางคณิตศาสตร์
การจัดการกับความผิดปกติ
Variable, Data type, Expression, Operators Data input, Data output
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
เริ่มต้นเขียนโปรแกรมภาษาจา วา (Introduction to JAVA Programming)
File & Directory Management การจัดการไฟล์และไดเรคทอรี
Object-Oriented Programming Paradigm
ใบสำเนางานนำเสนอ:

ทำงานกับ File และStream บทที่ 9 ทำงานกับ File และStream

รู้จักกับ Stream โปรแกรมของคุณทำการอ่านหรือเขียนข้อมูลจากอุปกรณ์ I/O ภายนอกโดยมีสะพานส่งผ่านข้อมูลอยู่ระหว่างกลาง และเมื่อไหร่ก็ตามที่มีข้อมูลเดินทางผ่านสะพานนี้ Java ก็จะเรียกมันว่า Stream

การทำงานแบบ Byte Stream Byte Stream เป็น Stream ที่ Java ใช้สำหรับการเขียนหรืออ่านข้อมูลแบบเครื่อง (machine-formatted data) โดยทำการสร้างคลาสย่อยขึ้นมาจากคลาส InputStream และ OutputStream แต่เป็นภาษาที่มนุษย์ไม่เข้าใจ ต้องผ่านกระบวนการ InputStream อีกครั้งจึงจะออกมาเป็นข้อความที่มนุษย์เข้าใจได้

การทำงานแบบ Character Stream Character Stream คือการอ่านและเขียนข้อมูลด้วยภาษาที่มนุษย์เข้าใจ โดยสร้างออบเจ็กต์ขึ้นมาจากคลาส 2 คลาสคือ Reader และ Writer โดยผ่านกระบวนการแปลค่าให้อยู่ในรูปจำนวนบิตที่เหมาะสม

คลาสสำหรับอ่านเขียนไฟล์ import java.io.*; Object Reader Writer FileReader + BufferedReader InputStreamReader FileReader - FileInputStream OutputStreamReader FileWriter FileOutoutStream FlieWriter + PrintWriter

Exception ในภาษาจาวา หากโปรแกรมที่เขียนมีความผิดพลาดเกิดขึ้น จะมีการดักจับข้อผิดพลาดต่างๆด้วย เรียกว่า Exception handling Method บางประเภท หากนำมาใช้งานจะต้องเขียนโปรแกรมสำหรับดักจับข้อผิดพลาดด้วย โดยมากเป็นเมธอดที่เกี่ยวข้องกับ input&output Exception handling ทำได้หลายวิธี เช่นการใช้คำสั่ง throws

ทำงานกับไฟล์ด้วย File Stream

ทำงานกับไฟล์ด้วย File Stream รูปแบบการสร้าง InputStream มี 2 รูปแบบดังนี้ หรือ FileReader in = new FileReader( ชื่อไฟล์ ); FileInputStream in = new FileInputStream( ชื่อไฟล์ );

การอ่านไฟล์ ตัวอย่าง

import java.io.*;

ทำงานกับไฟล์ด้วย File Stream หรือ รูปแบบการเขียน File Stream กรณีเขียนต่อท้ายลงไปที่ไฟล์ที่มีอยู่เดิม File fileObject = new File(“ ชื่อไฟล์และแหล่งที่อยู่ของไฟล์ ”); FileWriter f = new FileWriter( “ ชื่อไฟล์และแหล่งที่อยู่ของไฟล์ ”, false ); File fileObject = new File( “ ชื่อไฟล์และแหล่งที่อยู่ของไฟล์ ” ); FileWriter f = new FileWriter( “ ชื่อไฟล์และแหล่งที่อยู่ของไฟล์ ”, true );

การเขียน File Stream ตัวอย่าง

การอ่านข้อมูลแบบ textflie สร้างออปเจ็กต์ของคลาสเพื่อเปิดไฟล์ สร้างออปเจ็กต์ของคลาสเพื่ออ่านข้อมูล เมธอด inputFile .readLine(); inputFile.close(); FileReader fReader = new FileReader(“filename.txt”); BufferedReader inputFile = new BufferedReader (fReader);

การเขียนข้อมูลแบบ textflie สร้างออปเจ็กต์ของคลาสเพื่อเปิดไฟล์ สร้างออปเจ็กต์ของคลาสเพื่ออ่านข้อมูล เมธอด outputFile .println(String); outputFile .print(String); outputFile.close(); FileWriter fWriter = new FileWriter(“filename.txt”); PrintWriter outputFile = new PrintWriter (fWriter);

เมธอดต่างๆ เกี่ยวกับไฟล์ เมธอด renameTo( ) ใช้เมื่อต้องการจะย้ายไฟล์ หรือเปลี่ยนชื่อไฟล์ ในกรณีที่เราระบุที่เก็บของไฟล์ชื่อใหม่ปลายทางด้วย นั่นหมายถึงเป็นการย้ายไฟล์ แต่ถ้าไม่ระบุที่เก็บไฟล์ก็เป็นการเปลี่ยนชื่อไฟล์ที่ยังคงวางอยู่ที่เดิม รูปแบบการใช้งานเมธอด renameTo( ) เมธอด delete ใช้ลบไฟล์ โดยจะคืนค่าเป็นจริงเมื่อไฟล์นั้นมีอยู่จริง และสามารถทำการลบได้สำเร็จ ถ้าไม่ฉะนั้นจะคืนค่าที่เป็นเท็จ รูปแบบการใช้งานเมธอด delete( ) ชื่อออบเจ็กต์ของไฟล์เดิม . renameTo(ชื่อออบเจ็กต์ของไฟล์ใหม่ ); ชื่อออบเจ็กต์ของไฟล์เดิม.delete( )

การใช้งานเมธอด renameTo( ) import java.io.*; import java.io.File; public class FileRenameTo { public static void main(String[] args) throws IOException { File f1 = new File("d:/textfun.txt"); File f2 = new File("d:/textfunny.txt"); if (f1.renameTo(f2) == true) System.out.println("Rename is success."); else System.out.println("Rename is fail!"); }

การใช้งานเมธอด delete( ) import java.io.*; import java.io.File; public class FileDelete { public static void main(String[] args) throws IOException { String strDel = "d:/textfunny.txt"; File fDel = new File(strDel); if (fDel.delete() == true) System.out.println("File " + strDel + " is deleted."); else System.out.println("Delete fail!"); }

เมธอดต่างๆ เกี่ยวกับไฟล์ เมธอด length( ) ใช้ดูขนาดของไฟล์ เมธอดนี้จะคืนค่าเป็นค่าขนาดของไฟล์ ซึ่งมีหน่วยเป็นไบต์ รูปแบบการใช้งานเมธอด length( ) เมธอด mkdir จะเป็นเมธอดที่ใช้สร้างไดเร็คทอรี พร้อมกับคืนค่าเป็นจริงเมื่อสามารถสร้างได้สำเร็จ และคืนค่าเป็นเท็จเมื่อไม่สามารถทำการสร้างไดเร็คทอรีได้ รูปแบบการใช้งานเมธอด mkdir( ) ชื่อออบเจ็กต์ของไฟล์.length ( ); ชื่อออบเจ็กต์ของไดเร็คทอรี.mkdir( );

เมธอดต่างๆ เกี่ยวกับไฟล์ เมธอด getAbsolutePath นี้จะใช้เมื่อเราต้องการทราบไดเร็คทอรีที่เก็บไฟล์ รูปแบบการใช้งานเมธอด getAbsolutePath เมธอด exist( ) ตรวจสอบว่าไฟล์ดังกล่าวมีอยู่หรือไม่ รูปแบบการใช้งานเมธอด exist ชื่อออบเจ็กต์ของไฟล์.getAbsolutePath ( ) ; ชื่อออบเจ็กต์ของไฟล์.exists( ) ;

เมธอดต่างๆ เกี่ยวกับไฟล์ เมธอด canWrite( ) และเมธอด canRead( ) ทั้งสองเมธอดเป็นการตรวจสอบคุณสมบัติของไฟล์ว่าสามารถถูกนำไปเปิดอ่าน หรือ เขียนได้หรือไม่ รูปแบบการใช้งานเมธอด canWrite รูปแบบการใช้งานเมธอด canRead ชื่อออบเจ็กต์ของไฟล์.canWrite ( ) ; ชื่อออบเจ็กต์ของไฟล์.canRead ( ) ;

เมธอดต่างๆ เกี่ยวกับไฟล์ เมธอด isFile( ) เป็นเมธอดที่ใช้ตรวจสอบว่าออบเจ็กต์ที่ต้องการตรวจสอบเป็นไฟล์หรือไม่ รูปแบบการใช้งานเมธอด isFile เมธอด isDirectory( ) เป็นเมธอดที่ใช้ตรวจสอบว่าออบเจ็กต์ที่ต้องการตรวจสอบเป็นไดเร็คทอรีหรือไม่ รูปแบบการใช้งานเมธอด isDirectory ชื่อออบเจ็กต์ของไฟล์.isFile( ); ชื่อออบเจ็กต์ของไฟล์.isDirectory( );

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

Assignment#5 จงเขียนโปรแกรมเก็บตัวเลขจำนวนเต็ม 1 ถึง 10 ลงไปในไฟล์ จงเขียนโปรแกรมอ่านไฟล์ในข้อ 1 ขึ้นมาแสดงผล จงเขียนโปรแกรมอ่านไฟล์ที่ได้จากข้อ 1 มาคูณด้วย 2 แล้วแสดงผลทางจอภาพ จงคำนวณค่าของฟังก์ชัน F(x) = x2 + 3x + 8 โดย x เป็นจำนวนเต็มมีค่าตั้งแต่ 1 ถึง 10 แล้วนำค่าที่ได้เก็บลงไฟล์ จงเขียนโปรแกรมอ่านไฟล์ผลลัพธ์จากข้อ 4 มาแสดงผลทางจอภาพ