Java でファイルを開く

Rupam Yadav 2023年10月12日
  1. Java でデスクトップクラスを使用してファイルを開く
  2. Java での FileInputStream クラスの使用
  3. Java で BufferedReader クラスを使用してファイルを開く
  4. Java で Scanner クラスを使ってファイルを開く
Java でファイルを開く

Java でファイルを開く方法はたくさんあります。この記事では、それらのいくつかについて説明します。

Java でデスクトップクラスを使用してファイルを開く

Java AWT パッケージには、ファイルまたは URI を処理するためにネイティブデスクトップで登録済みアプリケーションを起動するために使用される Java 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 クラスをお勧めします。

コード内のファイルオブジェクト f から読み取る FileInputStream fIS を作成します。ファイルの内容を読み取り、端末に書き込みます。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.

Java で BufferedReader クラスを使用してファイルを開く

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.

Java で Scanner クラスを使ってファイルを開く

Java の Scanner クラスは java.util パッケージに属しています。正規表現を使用してプリミティブ型と文字列を解析でき、ファイルからデータを読み取るために使用できます。コンストラクターでファイルを指定して、Scanner クラスオブジェクトを作成します。

hasNextLine() メソッドを使用してファイルを 1 行ずつ読み取り、ファイルから読み取る次の行ができるまで、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