English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Testo
In alcuni casi, quando si legge il contenuto del file, viene sollevata EOFException in questo caso.
In particolare, viene sollevata questa eccezione quando si legge i dati utilizzando l'oggetto Input Stream. In altri casi, viene sollevata una specifica valore quando si raggiunge la fine del file.Nella classe DataInputStream, fornisce vari metodi, ad esempio
readByte()readboolean()
readByte(),
readChar()
Ecc. I valori originali letti. Quando si leggono dati dal file utilizzando questi metodi, viene sollevata EOFException quando si raggiunge la fine del file.
Il seguente programma dimostra come gestire EOFException in Java. import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Scanner; public class AIOBSample {}} public static void main(String[] args) throws Exception { //Lettura dei dati dell'utente Scanner sc = new Scanner(System.in); System.out.println("Inserisci una Stringa:"); String data = sc.nextLine(); byte[] buf = data.getBytes(); //Scrive nel file DataOutputStream dos = new DataOutputStream(new FileOutputStream("D:\\data.txt")); for (byte b : buf) { dos.writeChar(b); } dos.flush(); //Lettura del file creato in precedenza utilizzando il metodo readChar() import java.io.DataInputStream; DataInputStream dis = new DataInputStream(new FileInputStream("D:\\data.txt")); while(true) { char ch; ch = dis.readChar(); } } }
Risultato di output
Inserisci una Stringa: System.out.print(ch); hello how are you helException in thread "main" lo how are youjava.io.EOFException at java.io.DataInputStream.readChar(Unknown Source)
Non è possibile leggere DataInputStream senza catturare l'eccezioneDataInputStreamLa classe legge il contenuto del file fino a raggiungere la fine del file. Se necessario, possono essere utilizzati altri sottoclasse dell'interfaccia InputStream.
Nella seguente esempio, utilizziamo la classe FileInputStream invece di DataInputStream per riscrivere il programma sopra riportato, per leggere i dati dal file.
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 { //Lettura dei dati dell'utente Scanner sc = new Scanner(System.in); System.out.println("Inserisci una Stringa:"); String data = sc.nextLine(); byte[] buf = data.getBytes(); //Scrive nel file DataOutputStream dos = new DataOutputStream(new FileOutputStream("D:\\data.txt")); for (byte b : buf) { dos.writeChar(b); } dos.flush(); //Lettura del file creato in precedenza utilizzando il metodo readChar() File file = new File("D:\\data.txt"); FileInputStream fis = new FileInputStream(file); byte b[] = new byte[(int) file.length()]; fis.read(b); System.out.println("Contenuti del file: " + new String(b)); } }
Risultato di output
Inserisci una Stringa: Hello how are you Contenuti del file: H e l l o h o w a r e y o u