Java でファイルを開くには次の方法があります。
- Javaデスクトップクラス
- Java FileInputStream クラス
- Java BufferedReader クラス
- Java FileReader クラス
- Javaスキャナクラス
- Java nio パッケージ
Javaデスクトップクラス
Java デスクトップ クラスは、 開ける() ファイルを開くメソッド。それはに属します java.awt パッケージ。デスクトップの実装はプラットフォームに依存するため、オペレーティング システムがデスクトップをサポートしているかどうかを確認する必要があります。 Desktop クラスは、ファイルを処理するためにネイティブ デスクトップに登録されている関連アプリケーションを探します。関連付けられたアプリケーションがない場合、またはアプリケーションの起動に失敗した場合は、 ファイルが見つかりません例外 。ユーザーのデフォルトのブラウザを起動して、指定された URI を表示します。
- オプションのメール先 URI を使用して、ユーザーのデフォルトのメール クライアントを起動します。
- 登録されたアプリケーションを起動して、指定したファイルを開いたり、編集したり、印刷したりします。
の 開ける() Desktop クラスのメソッドは、関連付けられたアプリケーションを起動してファイルを開きます。ファイルを引数として受け取ります。メソッドのシグネチャは次のとおりです。
public void open (File file) throws IOException
このメソッドは次の例外をスローします。
Javaの文字列への変換
例
import java.awt.Desktop; import java.io.*; public class OpenFileExample1 { public static void main(String[] args) { try { //constructor of file class having file as argument File file = new File('C:\demo\demofile.txt'); if(!Desktop.isDesktopSupported())//check if Desktop is supported by Platform or not { System.out.println('not supported'); return; } Desktop desktop = Desktop.getDesktop(); if(file.exists()) //checks file exists or not desktop.open(file); //opens the specified file } catch(Exception e) { e.printStackTrace(); } } }
上記のプログラムを実行すると、指定されたテキスト ファイルがデフォルトのテキスト エディタで開きます。 .docx、.pdf、.webp ファイルを開くこともできます。
出力:
配列としてのリスト
Java FileInputStream クラス
ジャワ ファイル入力ストリーム クラスはファイルを開いて読み取るために使用されます。 FileInputStream クラスのコンストラクターを使用して、ファイルを開いて読み取ることができます。コンストラクターの署名は次のとおりです。
public FileInputStream(File file) throws FileNotFoundException
ファイルを引数として受け取ります。投げる ファイルが見つかりません例外 ファイルが存在しない場合、またはファイル名がディレクトリの場合。
例
import java.io.*; import java.util.Scanner; public class OpenFileExample2 { public static void main(String args[]) { try { //constructor of file class having file as argument File file=new File('C:\demo\demofile.txt'); FileInputStream fis=new FileInputStream(file); //opens a connection to an actual file System.out.println('file content: '); int r=0; while((r=fis.read())!=-1) { System.out.print((char)r); //prints the content of the file } } catch(Exception e) { e.printStackTrace(); } } }
出力:
Java BufferedReader クラス
ジャワ バッファリーダー クラスは文字入力ストリームからテキストを読み取ります。それはに属します java.io パッケージ。ファイルを開いたり読み取ったりするには、BufferedReader クラスのコンストラクターを使用します。コンストラクターの署名は次のとおりです。
public BufferedReader(Reader in)
デフォルトのサイズの入力バッファを使用するバッファリング文字入力ストリームを作成します。デフォルトサイズの入力バッファを使用します。
例
import java.io.*; import java.util.Scanner; public class OpenFileExample3 { public static void main(String args[]) { try { //constructor of File class having file as argument File file=new File('C:\demo\demofile.txt'); //creates a buffer reader input stream BufferedReader br=new BufferedReader(new FileReader(file)); System.out.println('file content: '); int r=0; while((r=br.read())!=-1) { System.out.print((char)r); } } catch(Exception e) { e.printStackTrace(); } } }
出力:
Java FileReader クラス
ジャワ ファイルリーダー クラスは、ファイルを開いたり読み取ったりするためにも使用されます。それはに属します java.io パッケージ。ファイルの文字を読み取るのに便利です。これは、FileInputStream クラスを使用して生のバイトを読み取るために使用されます。ファイルを開いて読み取るには、FileInputStream クラスのコンストラクターを使用します。コンストラクターの署名は次のとおりです。
public FileReader(File file) throws FileNotFoundException
ファイルを引数として受け取ります。それは、 ファイルが見つかりません例外 指定されたファイルが存在しない場合、またはファイル名がディレクトリの場合。
例
import java.io.*; public class OpenFileExample4 { public static void main(String args[]) { try { //constructor of the File class having file as an argument FileReader fr=new FileReader('C:\demo\demofile.txt'); System.out.println('file content: '); int r=0; while((r=fr.read())!=-1) { System.out.print((char)r); //prints the content of the file } } catch(Exception e) { e.printStackTrace(); } } }
出力:
二分木の順序走査
Javaスキャナクラス
ジャワ スキャナー クラスは、ファイルを開いたり読み取ったりするためにも使用されます。 Scanner クラスは以下に属します java.util パッケージ。 Scanner クラスのコンストラクターは、ファイルを開いて読み取るために使用されます。コンストラクターの署名は次のとおりです。
public scanner (File source) throws FileNotFoundException
(スキャン対象の) ファイルを引数として受け取ります。それも投げます ファイルが見つかりません例外 、ファイルのソースが見つからない場合。
例
import java.io.File; import java.util.Scanner; public class OpenFileExample5 { public static void main(String[] args) { try { File file=new File('C:\demo\demofile.txt'); Scanner sc = new Scanner(file); //file to be scanned while (sc.hasNextLine()) //returns true if and only if scanner has another token System.out.println(sc.nextLine()); } catch(Exception e) { e.printStackTrace(); } } }
出力:
Java nio パッケージ
readAllLines() メソッド : readAllLines() メソッドは File クラスのメソッドです。ファイルからすべての行を読み取り、ファイルのバイトを UTF-8 文字セットを使用して文字にデコードします。ファイルの行をリストとして返します。メソッドのシグネチャは次のとおりです。
public static List readAllLines(Path path) throws IOException
ここで、 path はファイル パスです。
Linuxでスクリプトを実行する方法
上記のメソッドは、次のメソッドを呼び出すことと同じです。
File.readAllLines(path, Standard CharSets.UTF_8)
Collections.emptyList(): emptyList()メソッドはjava.utilパッケージに属するCollectionクラスのメソッドです。空のリストを取得するために使用されます。メソッドのシグネチャは次のとおりです。
public static final List emptyList()
例
import java.util.*; import java.nio.charset.StandardCharsets; import java.nio.file.*; import java.io.*; public class OpenFileExample6 { public static List readFileInList(String fileName) { List lines = Collections.emptyList(); try { lines=Files.readAllLines(Paths.get(fileName), StandardCharsets.UTF_8); } catch (IOException e) { e.printStackTrace(); } return lines; } public static void main(String[] args) { List l = readFileInList('C:\demo\demofile.txt'); Iterator itr = l.iterator(); //access the elements while (itr.hasNext()) //returns true if and only if scanner has another token System.out.println(itr.next()); //prints the content of the file } }
出力: