การจัดการไฟล์ใน Java: วิธีทำงานกับไฟล์ Java

เผยแพร่แล้ว: 2021-03-12

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

สารบัญ

การจัดการไฟล์ Java คืออะไร?

ดังที่กล่าวไว้ การจัดการไฟล์ใน Java ช่วยให้คุณทำงานกับไฟล์ได้ เป็นฟังก์ชัน Java ที่กำหนดไว้ในคลาส File ของแพ็คเกจ Java.io io ในแพ็คเกจ Java.io ย่อมาจาก Input และ Output คุณจะพบคลาสทั้งหมดที่คุณต้องการเพื่อดำเนินการอินพุตหรือเอาต์พุตในแพ็คเกจ Java.io

คุณสามารถเข้าถึงและใช้คลาสไฟล์นี้เพื่อดำเนินการฟังก์ชันต่างๆ โดยการสร้างอ็อบเจ็กต์และระบุชื่อไฟล์หรือไดเร็กทอรี ไวยากรณ์ในการสร้างวัตถุและใช้คลาส File คือ:

นำเข้า java.io.File;

ไฟล์ obj = ไฟล์ใหม่ (“name.txt”);

ตามที่เห็นในไวยากรณ์ด้านบน คุณต้องนำเข้าคลาสไฟล์จากแพ็คเกจ Java.io ก่อน เมื่อนำเข้าแล้ว สิ่งที่คุณต้องทำคือสร้างวัตถุและระบุชื่อไฟล์หรือไดเรกทอรีที่คุณต้องการใช้งาน หากต้องการระบุชื่อไดเรกทอรีในระบบปฏิบัติการ Windows คุณต้องใช้ “\\” ตัวอย่างเช่น คุณต้องใช้ “ C:\\Users\\MyFolder\\MySubFolder ” และไม่ใช่ “ C:\Users|MyFolder|MySubFolder อย่างไรก็ตาม สำหรับระบบปฏิบัติการอื่นๆ เช่น Linux คุณสามารถใช้ single \ ได้ตามปกติ

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

แนวคิดของสตรีมใน Java คืออะไร?

กล่าวอย่างง่าย ๆ สตรีมคือชุดข้อมูล สตรีมมี 2 ประเภทคือ

  • Byte stream : สตรีมประเภทนี้ทำงานกับข้อมูลไบต์ การดำเนินการ I/O ดำเนินการโดยใช้สตรีมแบบไบต์เมื่อคุณอ่านหรือเขียนข้อมูลในรูปแบบไบต์ (8 บิต)
  • สตรีมอักขระ : สตรีมประเภทนี้ทำงานกับลำดับอักขระ การดำเนินการ I/O ดำเนินการโดยใช้สตรีมอักขระเมื่อคุณอ่านหรือเขียนข้อมูลโดยใช้อักขระ

ชำระเงิน: โครงการ Java อันดับต้น ๆ บน GitHub

มีวิธีใดบ้างสำหรับการจัดการไฟล์ใน Java

คลาส File จัดเตรียมวิธีการที่กำหนดไว้ล่วงหน้าต่างๆ เพื่อช่วยคุณดำเนินการ I/O ทั้งหมดโดยเพียงแค่เรียกใช้ ตารางด้านล่างแสดงวิธีการทั้งหมดพร้อมกับการดำเนินการที่พวกเขาทำ

วิธี พิมพ์ คำอธิบาย
สามารถอ่าน () บูลีน ตรวจสอบว่าคุณสามารถอ่านไฟล์ได้หรือไม่
สามารถเขียน () บูลีน เป็นการทดสอบว่าคุณสามารถเขียนลงในไฟล์ได้หรือไม่
createNewFile() บูลีน สิ่งนี้จะสร้างไฟล์เปล่าใหม่
ลบ() บูลีน วิธีนี้จะลบไฟล์ที่ระบุ
มีอยู่() บูลีน จะตรวจสอบว่าไฟล์ดังกล่าวมีอยู่หรือไม่
รับชื่อ () สตริง ส่งกลับชื่อไฟล์
getAbsolutePath() สตริง ส่งกลับชื่อพา ธ สัมบูรณ์ของไฟล์
ระยะเวลา() ยาว ส่งคืนขนาดไฟล์เป็นไบต์
รายการ() สตริง[] ส่งคืนรายชื่อไฟล์ที่มีอยู่ในไดเร็กทอรี
mkdir() บูลีน วิธีการนี้จะสร้างไดเร็กทอรีใหม่

วิธีการดำเนินการจัดการไฟล์ Java ที่แตกต่างกัน?

เนื่องจากคุณรู้เกี่ยวกับวิธีการต่างๆ ที่มีอยู่ในคลาส File จึงถึงเวลาที่จะใช้เพื่อดำเนินการ จัดการไฟล์ Java ต่างๆ ในการเริ่มต้น คุณสามารถดำเนินการต่อไปนี้ในไฟล์

  • สร้างไฟล์ใหม่
  • รับข้อมูลไฟล์.
  • เขียนลงในไฟล์.
  • อ่านจากไฟล์.
  • ลบไฟล์

เราจะยกตัวอย่างการดำเนินการแต่ละอย่าง ในตัวอย่างแรก เราจะสร้างไฟล์ใหม่ จากนั้นใช้ไฟล์เดียวกันเพื่อทำงานอื่นๆ

การสร้างไฟล์

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

ขอแนะนำให้ใช้วิธีนี้เสมอในบล็อก try and catch เนื่องจากอาจมีข้อยกเว้นหากสร้างไฟล์ไม่สำเร็จ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในคู่มือของเราเกี่ยวกับ การจัดการ ข้อ ยกเว้นใน Java ดูตัวอย่างด้านล่างที่ใช้เมธอด createNewFile() เพื่อสร้างไฟล์เปล่าใหม่

นำเข้า java.io.File; // การนำเข้าคลาสไฟล์

นำเข้า java.io.IOException; // การนำเข้าคลาส IOException สำหรับการจัดการข้อผิดพลาด

CreateFileExample คลาสสาธารณะ{

โมฆะคงที่สาธารณะหลัก (สตริง [] args){

พยายาม{

ไฟล์ obj = ไฟล์ใหม่ (“newFile.txt”);

if(obj.createNewFile()){ // ถ้ามันคืนค่าเป็นจริงเช่นสร้างสำเร็จ

System.out.println(“สร้างไฟล์ ile สำเร็จแล้ว:” + obj.getName());

}

อื่น { // หากคืนค่าเป็นเท็จเช่นมีไฟล์อยู่แล้ว

System.out.println("ไฟล์มีอยู่แล้ว");

}

}

catch (IOException e) { // เพื่อตรวจจับข้อยกเว้นหากมีข้อผิดพลาดเกิดขึ้น

System.out.println("เกิดข้อผิดพลาด");

e.printStackTrace();

}

}

}

เอาท์พุท:

สร้างไฟล์สำเร็จ: newFile.txt

การรับข้อมูลไฟล์

คุณสามารถใช้วิธีการต่างๆ ที่กำหนดไว้ในคลาส File เพื่อเข้าถึงข้อมูลต่างๆ ของไฟล์ เช่น ชื่อ ความยาว เส้นทางสัมบูรณ์ อ่านได้ และอื่นๆ วิธีการบางอย่างในการรับข้อมูลไฟล์นั้นใช้ในตัวอย่างด้านล่าง

นำเข้า java.io.File;

AccessInfoExample คลาสสาธารณะ{

โมฆะคงที่สาธารณะหลัก (สตริง [] args){

// การสร้างวัตถุ

ไฟล์ obj = ไฟล์ใหม่ (“newFile.txt”);

ถ้า(obj.exists()){

// รับชื่อไฟล์

System.out.println("ชื่อของไฟล์คือ:" + obj.getName());

// รับเส้นทางที่แน่นอน

System.out.println("เส้นทางที่แน่นอนของไฟล์คือ:" + obj.getAbsolutePath());

// ตรวจสอบว่าไฟล์เขียนได้หรือไม่

System.out.println("ไฟล์สามารถเขียนได้หรือไม่" + obj.canWrite());

// ตรวจสอบว่าไฟล์สามารถอ่านได้หรือไม่

System.out.println("ไฟล์สามารถอ่านได้หรือไม่" + obj.canRead());

// รับความยาวเป็นไบต์

// มันจะแสดง 0 เนื่องจากเรายังไม่ได้เขียนอะไรเลยในไฟล์ของเรา

System.out.println("ขนาดไฟล์เป็นไบต์:" + obj.length());

}

อื่น{

System.out.println("ชื่อไฟล์" + obj.getName() + "ไม่มีอยู่จริง");

}

}

}

เอาท์พุท:

ชื่อของไฟล์คือ: newFile.txt

เส้นทางที่แน่นอนของไฟล์คือ: D:JavaProgramming:newFile.txt

ไฟล์สามารถเขียนได้หรือไม่? จริง

ไฟล์สามารถอ่านได้หรือไม่? จริง

ขนาดไฟล์เป็นไบต์: 0

ผลลัพธ์ของตัวอย่างด้านบนอาจแตกต่างกันไปขึ้นอยู่กับชื่อไฟล์ เส้นทางที่คุณบันทึก และขนาด หากไม่มีไฟล์ที่ระบุ ไฟล์นั้นจะแสดง "ไฟล์ชื่อ newFile.txt ไม่มีอยู่"

การเขียนลงในไฟล์

ในการเขียนข้อมูลไบต์ ให้ใช้คลาส FileOutputStream และสำหรับอักขระ ให้ใช้คลาส FileWriter ในตัวอย่างด้านล่าง เราจะใช้คลาส FileWriter และวิธีการเขียนที่กำหนดไว้ล่วงหน้า () เพื่อเขียนบางอย่างภายใน "newFile"

สิ่งหนึ่งที่ควรทราบก่อนเริ่มด้วยตัวอย่างคือ เมื่อใดก็ตามที่คุณเปิดไฟล์เพื่อเขียน คุณจะต้องปิดมันด้วยเมธอด close() การปิดไฟล์จะทำให้คุณสามารถดึงทรัพยากรที่คอมไพเลอร์ Java จัดสรรให้เขียนในไฟล์ได้ เรามาดูวิธีการทำในตัวอย่างกัน

นำเข้า java.io.FileWriter; // การนำเข้าคลาส FileWriter

นำเข้า java.io.IOException; // การนำเข้าคลาส IOException สำหรับการจัดการข้อผิดพลาด

ตัวอย่างการเขียนคลาสสาธารณะ{

โมฆะคงที่สาธารณะหลัก (สตริง [] args){

พยายาม{

FileWriter obj = FileWriter ใหม่ ("newFile.txt");

obj.write(“สิ่งนี้จะถูกเขียนในไฟล์ newFile.txt!”);

obj.close(); // ปิดไฟล์

System.out.println(“เราเขียนไฟล์สำเร็จและปิดมันไปแล้ว”);

}

จับ (IOException จ){

System.out.println("เกิดข้อผิดพลาด");

e.printStackTrace();

}

}

}

เอาท์พุท:

เราเขียนในไฟล์สำเร็จแล้วปิดมัน

การอ่านจากไฟล์

คุณสามารถใช้ FileInputStream เพื่ออ่านข้อมูลไบต์และ FileReader เพื่ออ่านข้อมูลอักขระจากไฟล์ คุณยังสามารถใช้คลาส Scanner เพื่ออ่านจากไฟล์ได้อีกด้วย เนื่องจากเราใช้ FileWriter ในการเขียนข้อมูลแล้ว เราจะใช้คลาส Scanner เพื่ออ่านข้อมูลในตัวอย่างนี้ เช่นเดียวกับขณะเขียน การปิดไฟล์ที่เปิดอยู่ก็จำเป็นในขณะที่อ่านเช่นกัน

นำเข้า java.io.File; // การนำเข้าคลาสไฟล์

นำเข้า java.io.FileNotFoundException; // นำเข้าคลาสเพื่อจัดการกับข้อผิดพลาด

นำเข้า java.util.Scanner; // การนำเข้าคลาส Scanner เพื่ออ่านไฟล์ข้อความ

ตัวอย่างการอ่านคลาสสาธารณะ{

โมฆะคงที่สาธารณะหลัก (สตริง [] args){

พยายาม{

ไฟล์ obj = ไฟล์ใหม่ (“newFile.txt”);

สแกนเนอร์ robj = สแกนเนอร์ใหม่ (obj);

ในขณะที่ (robj.hasNextLine()){

สตริง dataInfo = robj.nextLine();

System.out.println(dataInfo);

}

robj.close();

}

จับ (FileNotFoundException จ) {

System.out.println("เกิดข้อผิดพลาด");

e.printStackTrace();

}

}

}

เอาท์พุท:

สิ่งนี้จะถูกเขียนในไฟล์ newFile.txt!

การลบไฟล์

คุณสามารถลบไฟล์โดยใช้เมธอด delete() ของคลาส File คุณยังสามารถลบทั้งโฟลเดอร์ได้หากว่างเปล่า มาลบไฟล์ “newFile.txt” ของเราในตัวอย่างด้านล่าง

นำเข้า java.io.File; // นำเข้าคลาสไฟล์

คลาสสาธารณะ DeleteExample{

โมฆะคงที่สาธารณะหลัก (สตริง [] args){

ไฟล์ obj = ไฟล์ใหม่ (“newFile.txt”);

ถ้า(obj.ลบ()){

System.out.println("ไฟล์ชื่อ" + obj.getName() + "ถูกลบเรียบร้อยแล้ว");

}

อื่น{

System.out.println(“ไฟล์ไม่ถูกลบ”);

}

}

}

เอาท์พุท:

ไฟล์ชื่อ newFile.txt ถูกลบเรียบร้อยแล้ว

อ่านเพิ่มเติม: แนวคิดและหัวข้อโปรเจ็กต์ Java

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

บทสรุป

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

หลักสูตรนี้เป็นส่วนหนึ่งของโปรแกรม upStart ซึ่งเป็นโครงการพัฒนาทักษะที่ประเมินค่าไม่ได้ เมื่อคุณเสร็จสิ้นหลักสูตรฟรีและได้รับการรับรองแล้ว คุณสามารถเลือกการ รับรอง PG ของ upGrad ในการพัฒนาแบบเต็มกอง ได้ คุณได้รับสื่อการเรียนรู้มากกว่า 400 ชั่วโมงพร้อมประสบการณ์ตรงผ่านโครงการ เข้าร่วมหลักสูตรและเชี่ยวชาญในด้านการพัฒนาซอฟต์แวร์ด้วยแนวคิดการเขียนโปรแกรม Java

จะอ่านและเขียนไฟล์ใน Java ได้อย่างไร?

ออบเจ็กต์ของคลาส InputStream แสดงถึงแหล่งข้อมูลที่สามารถอ่านไบต์ได้ และอ็อบเจ็กต์ของคลาส OutputStream แสดงถึงปลายทางที่สามารถเขียนไบต์ได้ อ็อบเจ็กต์ดังกล่าวใช้กับคลาสต่างๆ ของแพ็คเกจ java.io เพื่ออ่านและเขียนไฟล์ เพื่ออ่านและเขียนข้อมูลจากซ็อกเก็ต และเพื่อดำเนินการอินพุตและเอาต์พุตอื่นๆ ที่หลากหลาย

ไลบรารีจัดการไฟล์ต่าง ๆ ใน Java คืออะไร

มีไลบรารีการจัดการไฟล์หลายตัวที่จัดไว้ให้ในจาวา แต่ละคนมีจุดประสงค์และการใช้งานของตัวเอง แพ็คเกจ java.io กำหนดคลาสการจัดการไฟล์พื้นฐาน ดังนั้นเราจึงสามารถพูดได้ว่ามันเป็นไลบรารีการจัดการไฟล์ที่ใช้งานทั่วไปมากที่สุด แพ็คเกจ java.nio หรือที่เรียกว่าแพ็คเกจ New Input/Output ส่วนใหญ่จะใช้สำหรับการถ่ายโอนข้อมูลความเร็วสูง เวลาแฝงต่ำ และแบนด์วิดท์ต่ำ มีความปลอดภัย น้ำหนักเบา และเป็นอิสระจากแพลตฟอร์ม แพ็คเกจนี้ขยายแพ็คเกจ java.io ด้วยการเพิ่ม API ที่อิงตามช่องทาง นอกจากนี้ แพ็คเกจ java.nio.file ยังใช้สำหรับส่วนต่อประสานการเขียนโปรแกรมกับระบบไฟล์ ระบบไฟล์คือการจัดระเบียบข้อมูลตามลำดับชั้น โดยไม่ขึ้นกับสื่อทางกายภาพ ภายในที่ข้อมูลถูกเก็บไว้ ระบบไฟล์ช่วยให้แชร์ไฟล์และสื่อสารระหว่างกระบวนการระหว่างแอปพลิเคชันได้ นอกจากนี้ แพ็คเกจ java.nio.file.attribute ยังใช้สำหรับคลาสและอินเตอร์เฟสสำหรับแอ็ตทริบิวต์ระบบไฟล์

แอปพลิเคชั่นจัดการไฟล์ใน Java คืออะไร?

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