Java:
การอ่านไฟล์ข้อความ
วิธีการ:
การอ่านไฟล์ใน Java ง่ายมาก โดยเฉพาะกับ java.nio.file นี่คือตัวอย่างง่ายๆ:
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
import java.util.stream.Stream;
public class FileReadExample {
public static void main(String[] args) {
Path filePath = Path.of("example.txt");
try (Stream<String> lines = Files.lines(filePath)) {
lines.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
}เมื่อทำการรันด้วย example.txt ที่มีเนื้อหา “Hello, file readers!” จะได้ผลลัพธ์:
Hello, file readers!ศึกษาเพิ่มเติม
Java ได้พัฒนาขึ้น ในอดีต คุณต้องจัดการกับ streams และ readers ด้วยตัวเอง - มากมายของ boilerplate แพคเกจ java.io เป็นที่นิยม พร้อม FileReader และ BufferedReader ที่มักจะถูกใช้งานอยู่ ต่อมาได้มี java.nio ที่นำเสนอ channels และ buffers สำหรับการควบคุมมากขึ้น
ตอนนี้ java.nio.file มีระดับสูงยิ่งขึ้น Files และ Paths ช่วยทำให้งานง่ายขึ้น ตัวอย่างข้างต้นใช้ Files.lines ซึ่งสตรีมบรรทัดอย่างช้าๆ ดีสำหรับไฟล์ขนาดใหญ่ คุณยังได้ใช้ try-with-resources ที่ปิดสตรีมโดยอัตโนมัติเพื่อหลีกเลี่ยงการรั่วไหล
มีทางเลือกอื่นหรือไม่? Scanner นั้นเหมาะสำหรับการวิเคราะห์ Apache Commons IO และ Guava ของ Google มียูทิลิตี้สำหรับงานที่ซับซ้อนมากขึ้น หากคุณต้องการ อย่างไรก็ตาม Java แบบธรรมดามักจะพาคุณไปได้ไกล
ในเรื่องของการประยุกต์ใช้งาน การเข้ารหัสไฟล์นั้นสำคัญ Files.lines ถือว่าเป็น UTF-8 เป็นค่าเริ่มต้น แต่คุณสามารถระบุอื่นได้ ในทางกลับกัน BufferedReader ต้องการให้คุณตั้งค่า Charset ล่วงหน้าหากมันไม่ใช่ค่าเริ่มต้น
ดูเพิ่มเติม
สำหรับการเพิ่มความกระชับ ลองดูที่นี่:
- คลาส
Filesในเอกสารอย่างเป็นทางการของ Java - การอ่าน, เขียน, และสร้างไฟล์ สำหรับการเดินทางที่ละเอียดยิ่งขึ้น
- Apache Commons IO สำหรับไลบรารียูทิลิตี้ของ IO ไฟล์ที่ทรงพลัง