目次
Filesクラスでファイル読み込み
Files.readString(Java 11以降)
Java11以降のバージョンであれば「Files.readString」でファイルの内容を簡単にStringに代入することができます。
[Files.readStringの使用例]
import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class FileReadStringSample { public static void main(String[] args) { Path path = Paths.get("C:\\work\\sample.txt"); try { String text = Files.readString(path, StandardCharsets.UTF_8); System.out.println(text); } catch (IOException e) { System.out.println("ファイル読み込みに失敗"); } } }
[実行結果]
あいうえお かきくけこ さしすせそ たちつてと なにぬねの
スポンサーリンク
Files.readAllLines(Java7以降)
Java7以降のバージョンであれば「Files.readAllLines」でファイルの内容を簡単にStringのListに代入することができます。
[Files.readAllLinesの使用例]
import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; public class FileReadAllLinesSample { public static void main(String[] args) { Path path = Paths.get("C:\\work\\sample.txt"); try { List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8); for (String value : lines) { System.out.println(value); } } catch (IOException e) { System.out.println("ファイル読み込みに失敗"); } } }
[実行結果]
あいうえお かきくけこ さしすせそ たちつてと なにぬねの
FileReaderクラスでファイル読み込み
ファイル読み込みの基本であるFileReaderでファイルを一行ずつ読み込むことができます。ただし、この方法は文字コードを指定することができません。(文字コードを指定する場合は、FileInputStreamを使用します)
[FileReaderの例]
import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class FileReaderSample { public static void main(String[] args) throws IOException { File file = new File("C:\\work\\sample.txt"); BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); String text; while ((text = reader.readLine()) != null) { System.out.println(text); } } catch (FileNotFoundException e) { System.out.println("ファイルが存在しない"); } catch (IOException e) { System.out.println("ファイル読み込みに失敗"); } finally { if (reader != null) { reader.close(); } } } }
[実行結果]
あいうえお かきくけこ さしすせそ たちつてと なにぬねの
スポンサーリンク
FileReaderでファイルを読み込むときは、BufferedReaderのcloseを呼び出すのを忘れないように注意が必要です。(※FileReaderのcloseはBufferedReader.closeの中で呼び出されている)
closeの書き忘れを防ぐためにも、Java7以降で使えるtry-with-resourcesを使うことをお勧めします。※try-with-resources文は、処理の終わりで各リソースを確実に閉じてくれる
[try-with-resourceを使った場合の例]
public static void main(String[] args) { File file = new File("C:\\work\\sample.txt"); try (BufferedReader reader = new BufferedReader(new FileReader(file))) { String text; while ((text = reader.readLine()) != null) { System.out.println(text); } } catch (FileNotFoundException e) { System.out.println("ファイルが存在しない"); } catch (IOException e) { System.out.println("ファイル読み込みに失敗"); } }
InputStreamReaderで文字コードを指定してファイル読み込み
InputStreamReaderを使用することで、文字コードを指定してファイルを一行ずつ読み込むことができます。
[InputStreamReaderの例] ※try-with-resourcesを使用
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; public class InputStreamReaderSample { public static void main(String[] args) { File file = new File("C:\\work\\sample.txt"); try (BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { String text; while ((text = reader.readLine()) != null) { System.out.println(text); } } catch (FileNotFoundException e) { System.out.println("ファイルが存在しない"); } catch (IOException e) { System.out.println("ファイル読み込みに失敗"); } } }
[実行結果]
あいうえお かきくけこ さしすせそ たちつてと なにぬねの
helpful
この記事は役に立ちましたか?