0

Java でサンプル テキスト ファイルを正常に読み書きできます。ただし、ファイルから読み取ろうとすると、ファイルの最後に到達すると常に NoSuchElementException がスローされます。「ファイルの終わりに到達しました」と出力してこの例外をキャッチするようにコードを修正しましたが、それが正常かどうか疑問に思っていました。私はそうではないと感じ、何かが欠けているように感じます。

どんな助けでも大歓迎です。これが私のコードです:

MyFileWriter.java

import java.io.*;

public class MyFileWriter {

   public static void main(String[] args) {
      File file = new File("MyFile.txt");
      PrintWriter out = null;

      try {
         out = new PrintWriter(file);
         out.write("This is a text file.");
      } catch(IOException e) {
         e.printStackTrace();
         System.out.println("IOException: " + e.getMessage());
      } finally {
         out.flush();
         out.close();
      }
   }
}

MyFileReader.java

import java.io.*;
import java.util.*;

public class MyFileReader {
  public static void main(String[] args) {

     File file = new File("MyFile.txt");
     Scanner scan = null;

     try {
        scan = new Scanner(file);
        while(true) {
           String next = scan.nextLine();
           if(next != null) {
              System.out.println(next);
           }
           else {
              break;
           }
        }
     } catch(IOException e) {
        e.printStackTrace();
        System.out.println("IOException: " + e.getMessage());
     } catch(NoSuchElementException e) {
        System.out.println("***Reached end of file***");
     } finally {
        scan.close();
     }
  }

}

4

1 に答える 1