Java でファイルを開く
-
Java で
デスクトップ
クラスを使用してファイルを開く - Java での FileInputStream クラスの使用
-
Java で
BufferedReader
クラスを使用してファイルを開く -
Java で
Scanner
クラスを使ってファイルを開く
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn