Java에서 Scanner 닫기

Rupam Yadav 2023년10월12일
  1. 사용자의 표준 입력을 인쇄 한 후 Java에서 Scanner닫기
  2. 사이에 줄 바꿈 문자가있는 지정된 문자열을 인쇄 한 후 Java에서 Scanner닫기
  3. 파일 내용을 읽은 후 Java에서close()메소드를 사용하여Scanner 닫기
Java에서 Scanner 닫기

이 튜토리얼에서는 Java에서 Scanner를 닫는 방법과 사용해야하는시기를 배웁니다. Scanner 클래스에는 특히 열린 Scanner를 닫는 데 사용할 수있는close()메소드가 있습니다. 명시 적으로close()메소드를 호출하지 않더라도Closeable 인터페이스가 호출되어 스트림을 닫습니다. Scanner를 명시 적으로 닫는 것이 좋습니다.

다음은Scanner.close()메서드를 언제 어떻게 사용할 수 있는지 보여주는 예입니다.

사용자의 표준 입력을 인쇄 한 후 Java에서 Scanner닫기

아래 코드에서는 생성자에서 사용자의System.in 표준 입력을받는Scanner 객체in을 만들었습니다. nextLine()메서드는 건너 뛴 입력을 반환합니다. 공백과 줄 구분 기호를 포함하여 줄 끝까지 전체 입력 줄을 읽습니다.

입력이 인쇄되고Scanner 객체inclose()메서드를 호출하여Scanner를 닫습니다. Scanner가 닫힌 후myString2로 아래와 같이in을 사용하려면 스트림 또는Scanner가 닫 혔기 때문에 예외가 발생합니다.

import java.util.Scanner;

public class CloseScanner {
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.print("Enter a String: ");

    String mystring = in.nextLine();
    System.out.println("The String you entered is: " + mystring);
    in.close();

    String myString2 = in.nextLine();
    System.out.println(myString2);
  }
}

출력:

Enter a String: the cat is white
The String you entered is: the cat is white

Exception in thread "main" java.lang.IllegalStateException: Scanner closed
	at java.base/java.util.Scanner.ensureOpen(Scanner.java:1150)
	at java.base/java.util.Scanner.findWithinHorizon(Scanner.java:1781)
	at java.base/java.util.Scanner.nextLine(Scanner.java:1649)
	at com.company.Main.main(Main.java:20)

사이에 줄 바꿈 문자가있는 지정된 문자열을 인쇄 한 후 Java에서 Scanner닫기

이 예에서는\nnextLine()을 사용하여s 문자열을 다른 행으로 분리합니다. \n은 새 줄을 나타내는 데 사용되며scanner.nextLine()이 새 줄을 감지하면 새 줄로 이동 한 다음 인쇄합니다. 따라서 출력에는 서로 다른 줄의s에있는 세 가지 주제가 모두 있습니다.

이것은scanner가 더 이상 새 줄을 스캔하지 않도록close()메서드를 호출하려는 경우 중 하나입니다.

import java.util.Scanner;

public class CloseScanner {
  public static void main(String[] args) {
    try {
      String s = " English \n Maths \n Science ";
      Scanner scanner = new Scanner(s);
      System.out.println(scanner.nextLine());
      System.out.println(scanner.nextLine());
      System.out.println(scanner.nextLine());

      scanner.close();
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
  }
}

출력:

 English 
 Maths 
 Science 

파일 내용을 읽은 후 Java에서close()메소드를 사용하여Scanner 닫기

파일을 읽을 때 항상 Scanner를 닫는 것이 좋습니다. 사용하지 않는 입력 또는 출력 스트림이 열리지 않도록합니다. 다음 예제는 파일에서String을 읽고 작업이 완료되면scanner를 닫는 방법을 보여줍니다.

import java.io.File;
import java.util.Scanner;

public class CloseScanner {
  public static void main(String[] args) {
    try {
      File file = new File("/Users/john/Documents/Example.txt");
      Scanner scanner = new Scanner(file);
      StringBuffer sb = new StringBuffer();
      while (scanner.hasNext()) {
        sb.append(" " + scanner.nextLine());
      }
      System.out.println(sb);
      scanner.close();
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
  }
}

출력:

Hello, You are in a text file.
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java Scanner