Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để xử lý EOFException trong java?

Trong khi đọc nội dung của tệp trong một số trường hợp nhất định, phần cuối của tệp sẽ đạt được trong các trường hợp như vậy, một EOFException sẽ được ném ra.

Đặc biệt, ngoại lệ này được ném ra trong khi đọc dữ liệu bằng các đối tượng Dòng đầu vào. Trong các trường hợp khác, một giá trị cụ thể sẽ được đưa ra khi đến cuối tệp.

Ví dụ

Chúng ta hãy xem xét lớp DataInputStream, nó cung cấp nhiều phương thức khác nhau như readboolean (), readByte (), readChar (), v.v. để đọc các giá trị nguyên thủy. Trong khi đọc dữ liệu từ tệp bằng các phương pháp này khi đến cuối tệp, một EOFException sẽ được ném.

 import java.io.DataInputStream; import java.io.FileInputStream; public class EOFExample {public static void main (String [] args) throws Exception {// Đọc từ tệp đã tạo ở trên bằng phương thức readChar () DataInputStream dis =new DataInputStream (new FileInputStream ("D:\\ data.txt")); while (true) {char ch; ch =dis.readChar (); System.out.print (ch); }}} 

Ngoại lệ thời gian chạy

 Chào bạn. 

Xử lý EOFException

Bạn không thể đọc nội dung của tệp nếu không truy cập vào cuối tệp bằng DataInputStream lớp. Nếu muốn, bạn có thể sử dụng các lớp con khác của giao diện InputStream.

Ví dụ

Trong ví dụ sau, chúng tôi đã viết lại chương trình trên bằng lớp FileInputStream thay vì DataInputStream để đọc dữ liệu từ một tệp.

 import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Scanner; public class AIOBSample {public static void main (String [] args) throws Exception {// Đọc dữ liệu từ byte người dùng [] buf ="Xin chào, bạn khỏe không" .getBytes (); // Ghi nó vào một tệp bằng DataOutputStream DataOutputStream dos =new DataOutputStream (new FileOutputStream ("D:\\ data.txt")); for (byte b:buf) {dos.writeChar (b); } dos.flush (); System.out.println ("Dữ liệu được ghi thành công"); }} 

Đầu ra

 Dữ liệu được ghi thành công 

Sau đây là một cách khác để xử lý EOFException trong Java -

 import java.io.DataInputStream; import java.io.EOFException; import java.io.FileInputStream; import java.io.IOException; public class Xử lýEOF {public static void main (String [] args) ném Exception {DataInputStream dis =new DataInputStream (new FileInputStream ("D:\\ data.txt")); while (true) {char ch; thử {ch =dis.readChar (); System.out.print (ch); } catch (EOFException e) {System.out.println (""); System.out.println ("Đã đến cuối tệp"); phá vỡ; } catch (IOException e) {}}}} 

Đầu ra

 Xin chào, bạn khỏe không