Java에서 파일 열기

Rupam Yadav 2023년10월12일
  1. Desktop 클래스를 사용하여 Java에서 파일 열기
  2. Java에서 FileInputStream 클래스 사용
  3. BufferedReader 클래스를 사용하여 Java에서 파일 열기
  4. Scanner 클래스를 사용하여 Java에서 파일 열기
Java에서 파일 열기

Java에서 파일을 여는 방법에는 여러 가지가 있습니다. 우리는 이 기사에서 그들 중 몇 가지에 대해 논의할 것입니다.

Desktop 클래스를 사용하여 Java에서 파일 열기

Java AWT 패키지에는 파일 또는 URI를 처리하기 위해 기본 데스크탑에서 등록된 애플리케이션을 시작하는 데 사용되는 Java Desktop 클래스가 있습니다. 구현은 플랫폼에 따라 다릅니다. 따라서 운영 체제가 Desktop을 지원하는지 여부를 확인해야 합니다. 등록된 애플리케이션이 없거나 실행에 실패하면 FileNotFoundException이 발생합니다.

Desktop 클래스에는 등록된 응용 프로그램을 시작하여 인수로 사용하는 파일을 여는 open() 메서드가 있습니다.

텍스트 파일의 경로를 인수로 전달하는 새로운 File 클래스 객체를 생성합니다. 시스템이 데스크탑을 지원하지 않으면 Desktop.isDesktopSupported()가 false를 반환하면 즉시 반환됩니다. 현재 브라우저 컨텍스트의 Desktop 인스턴스 Desktop을 얻습니다.

file 객체에서 exists() 메소드를 사용하여 파일이 존재하는지 확인합니다. desktop.open()을 호출하여 기본 텍스트 편집기에서 파일을 엽니다.

import java.awt.*;
import java.io.File;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File file = new File("/Users/john/Desktop/demo.txt");
      if (!Desktop.isDesktopSupported()) {
        System.out.println("not supported");
        return;
      }
      Desktop desktop = Desktop.getDesktop();
      if (file.exists())
        desktop.open(file);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Java에서 FileInputStream 클래스 사용

FileInputStream 클래스는 오디오, 이미지 데이터, 비디오 등과 같은 바이트 지향 데이터를 읽는 데 사용됩니다. 또한 파일에서 입력 바이트를 얻을 때 문자 스트림을 읽는 데 사용할 수 있습니다. 따라서 파일을 열고 읽는 데 사용할 수 있습니다. 그러나 FileReader 클래스는 파일을 읽는 데 권장됩니다.

FileInputStream fIS를 생성하여 코드에서 f라는 파일 개체에서 읽습니다. 파일의 내용을 읽고 터미널에 씁니다. while 루프에서 read() 메서드가 -1을 반환할 때까지 스트림의 문자를 읽습니다.

import java.io.File;
import java.io.FileInputStream;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File f = new File("/Users/john/Desktop/demo.txt");
      FileInputStream fIS = new FileInputStream(f);
      System.out.println("file content: ");
      int r = 0;
      while ((r = fIS.read()) != -1) {
        System.out.print((char) r);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

출력:

file content: 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.

BufferedReader 클래스를 사용하여 Java에서 파일 열기

BufferedReader 클래스는 문자 기반 입력 스트림에서 텍스트를 읽습니다. 새로운 FileReader를 생성자에 전달하는 판독기 개체가 필요합니다. FileReader는 문자 파일을 읽기에 편리한 클래스입니다.

BufferedReader는 기본 크기를 사용하는 버퍼링 문자 입력 스트림을 만듭니다. read() 메서드가 -1을 반환하고 파일의 출력을 인쇄할 때까지 스트림에서 읽습니다.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File fil = new File("/Users/john/Desktop/demo2.txt");
      BufferedReader br = new BufferedReader(new FileReader(fil));
      System.out.println("file content: ");
      int r = 0;
      while ((r = br.read()) != -1) {
        System.out.print((char) r);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

출력:

file content:-- 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.

Scanner 클래스를 사용하여 Java에서 파일 열기

Java의 Scanner 클래스는 java.util 패키지에 속합니다. 정규식을 사용하여 기본 유형과 문자열을 구문 분석할 수 있으며 파일에서 데이터를 읽는 데 사용할 수 있습니다. 생성자에서 파일을 지정하여 Scanner 클래스 개체를 만듭니다.

hasNextLine() 메서드를 사용하여 파일을 한 줄씩 읽고 파일에서 읽을 다음 줄이 생길 때까지 while 루프 내부의 각 줄을 인쇄합니다.

import java.io.File;
import java.util.Scanner;
public class OpenFile {
  public static void main(String args[]) {
    try {
      File file = new File("/Users/john/Desktop/demo1.txt");
      Scanner scanner = new Scanner(file);
      while (scanner.hasNextLine()) System.out.println(scanner.nextLine());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

출력:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget quam malesuada, molestie nibh id, vestibulum libero. Vestibulum sed ligula ut ligula bibendum pharetra. Suspendisse est odio, euismod vel porta ac, dapibus at lorem. In a leo vestibulum, commodo erat eget, cursus purus. Integer hendrerit orci eu erat pretium hendrerit. Etiam dignissim tempus orci. Etiam suscipit non sapien vitae condimentum. Fusce nec molestie nulla. Cras ut vestibulum tortor. Duis velit mi, dapibus vel scelerisque vitae, sagittis vitae purus. Ut et tempus eros, id scelerisque dolor. In suscipit ante sem.
작가: 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 File