Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

การใช้งาน Java File, FileReader และ FileWriter Class

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

นี่คือที่มาของไลบรารี java.io ซึ่งมีเมธอดมากมายสำหรับจัดการไฟล์ใน Java

บทช่วยสอนนี้อธิบายการใช้งานคลาส File, FileReader, FileWriter และเมธอดหลัก พร้อมตัวอย่างแต่ละเมธอด

ไฟล์ใน Java

ไฟล์ (Files) = รายการในคอมพิวเตอร์เก็บข้อมูลเฉพาะ เช่น รายชื่อนักเรียนชั้นคณิตศาสตร์ หรือส่วนผสมทำเค้กกาแฟ Directories = โฟลเดอร์เก็บไฟล์และไดเรกทอรี่อื่นๆ

java.io มีแพ็กเกจหลายอย่างสำหรับไฟล์และไดเรกทอรี่ บทนี้เน้น File, FileReader, FileWriter

เมธอดเหล่านี้เป็น external package ต้อง import ก่อนใช้:

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

สร้างไฟล์ใน Java

คลาส File ใช้สร้างไฟล์ว่างใน Java

ก่อนสร้างไฟล์ ต้องสร้าง File object ก่อน - เป็น representation ของไฟล์/โฟลเดอร์ในโค้ด แต่ออบเจ็กต์เพียงอย่างเดียวไม่สร้างไฟล์จริง ต้องสร้าง object แล้วใช้สร้างไฟล์

ไวยากรณ์สร้าง File object:

File fileName = new File(String filePath);

สร้างออบเจ็กต์ fileName อ้างอิงไฟล์/โฟลเดอร์ที่ path ที่ระบุ

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

ตัวอย่าง: สร้างไฟล์เก็บผลวิเคราะห์หุ้น

โปรแกรมวิเคราะห์หุ้น S&P 500 ปี 2019 ต้องการสร้างไฟล์เก็บ insights

import java.io.File; 
class CreateFile { 
    public static void main(String[] args) { 
        File resultsFile = new File("/home/data_analysis/2019sandp500/result.txt"); 
        boolean fileCreated = resultsFile.createNewFile(); 
        if (fileCreated) { 
            System.out.println("The results file has been created."); 
        } else { 
            System.out.println("The results file already exists."); 
        } 
    } 
}

รันโค้ด -> สร้างไฟล์ที่ path แล้วพิมพ์ "The results file has been created." ถ้ามีอยู่แล้ว -> "The results file already exists."

อธิบาย: import java.io.File สร้าง class CreateFile สร้าง file object resultsFile ที่ path ใช้ createNewFile() สร้างไฟล์ เก็บผลลัพธ์ boolean ไว้ fileCreated if fileCreated=true -> พิมพ์สร้างสำเร็จ else -> พิมพ์มีอยู่แล้ว

อ่านไฟล์ใน Java

เมธอด read() ในคลาส FileReader ใช้อ่านเนื้อหาไฟล์

สมมติมีไฟล์ /home/data_analysis/2019sandp500/raw_message.txt เนื้อหา: JAVA S&P 500 ANALYSIS PROGRAM

import java.io.FileReader; 
class Main { 
    public static void main(String[] args) { 
        char[] array = new char[100]; 
        try { 
            FileReader fileContents = new FileReader("/home/data_analysis/2019sandp500/raw_message.txt"); 
            fileContents.read(array); 
            System.out.println(array); 
            fileContents.close(); 
        } catch(Exception error) { 
            error.getStackTrace(); 
        } 
    } 
}

ผลลัพธ์: JAVA S&P 500 ANALYSIS PROGRAM

อธิบาย: ใช้ FileReader สร้าง file object อ่านไฟล์ ใช้ read() อ่านเข้า array พิมพ์ array ปิดไฟล์ด้วย close()

เขียนไฟล์ใน Java

เมธอด write() จาก FileWriter ใช้เขียนไฟล์

สมมติเขียนวันนี้ลงบนสุดไฟล์ผลลัพธ์ /home/data_analysis/2019sandp500/results.txt

import java.io.FileWriter; 
class Main { 
    public static void main(String args[]) { 
        String date = "Thursday, March 12th"; 
        try { 
            FileWriter writeToFile = new FileWriter("/home/data_analysis/2019sandp500/results.txt"); 
            writeToFile.write(date); 
            writeToFile.close(); 
            System.out.println("The date has been written to the file."); 
        } catch (Exception error) { 
            error.getStackTrace(); 
        } 
    } 
}

โค้ดเขียน "Thursday, March 12th" ลงไฟล์ results.txt พิมพ์ "The date has been written to the file."

อธิบาย: FileWriter สร้าง representation ของไฟล์ write() เขียน string ลงไฟล์ close() ปิดไฟล์

ลบไฟล์ใน Java

แพ็กเกจ File มีเมธอด delete() ลบไฟล์หรือไดเรกทอรี่ คืน true ถ้าลบสำเร็จ false ถ้าไม่มีไฟล์ เพิ่มเติม: delete() ลบไดเรกทอรี่ว่างเปล่าได้อย่างเดียว

สมมติลบ results.txt ตอนเริ่มโปรแกรม เพื่อเขียนข้อมูลใหม่ภายหลัง

import java.io.File; 
class Main { 
    public static void main(String[] args) { 
        File results = new File("/home/data_analysis/2019sandp500/results.txt"); 
        boolean deleteFile = results.delete(); 
        if (deleteFile) { 
            System.out.println("results.txt has been deleted."); 
        } else { 
            System.out.println("results.txt has not been deleted."); 
        } 
    } 
}

ผลลัพธ์: results.txt has been deleted.

อธิบาย: สร้าง File object results อ้างอิง results.txt ใช้ delete() ลบ ไม่ว่าจะสำเร็จพิมพ์ข้อความตาม boolean

สรุป

  • File: สร้างและลบไฟล์
  • FileReader: อ่านเนื้อหาไฟล์
  • FileWriter: เขียนข้อมูลลงไฟล์

บทช่วยสอนนี้อธิบายการใช้งาน File, FileReader, FileWriter พร้อมตัวอย่าง ตอนนี้คุณพร้อมทำงานกับไฟล์ใน Java อย่างมืออาชีพแล้ว!