Java テキストファイルの読み書きのサンプル(Filesクラス)

Javaのテキストファイルの読み書きのサンプルです。
読み書きに伴い必要になる、フォルダとファイルの存在チェックのサンプルもあります。

目次

テキストファイルに書き込む

テキストファイルに書き込むサンプルです。

23-25行目は、新規でリストの値をファイルに書き込みしています。引数にStandardOpenOption.TRUNCATE_EXISTINGを指定します。
27,28行目は、追記でリストの値をファイルに書き込みしています。引数にStandardOpenOption.APPENDを指定します。

package test1;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.List;
 
public class Test1 {
    public static void main(String[] args) {
        
        String dir = "D:\\workspace123abc";
        String filename = "test1.txt";
     
        List<String> listA = new ArrayList<>();
        listA.add("あ1");
        listA.add("い2");
        listA.add("う3");
     
        try {
        	// 新規で書き込み
            Files.write(Paths.get(dir, filename), listA,
            Charset.forName("SHIFT_JIS"), 
            StandardOpenOption.TRUNCATE_EXISTING);
     
            // 追記で書き込み
            Files.write(Paths.get(dir, filename), listA,
            Charset.forName("SHIFT_JIS"), StandardOpenOption.APPEND);
     
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

テキストファイルを読み込む

テキストファイルを読み込むサンプルです。

16,17行目は、FilesクラスのreadAllLinesメソッドでファイルを読み込んでいます。

package test1;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
 
public class Test1 {
    public static void main(String[] args) {
        
        String dir = "D:\\workspace123abc";
        String filename = "test1.txt";
     
        try {
            // ファイルの読み込み
            List<String> line = Files.readAllLines(Paths.get(dir, filename),
                    Charset.forName("SHIFT_JIS"));

            // コンソールに出力
            for (String s : line) {
                System.out.println(s);
            }
     
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Filesクラス

Pathsクラス - getメソッド

1 public static Path get(URI uri)
2 public static Path get(String first,String... more)

指定する主な文字コード

指定する主な文字コードと名称です。
上記コードでは、Charset.forName("SHIFT_JIS"))のように指定しています。

文字コード 指定する文字コード名称
シフトJIS Shift_JIS
SJIS
UTF8 UTF-8

フォルダ・ファイルの存在チェック

フォルダ・ファイルの存在チェックのサンプルです。

13行目は、FilesクラスのisDirectoryメソッドでフォルダの存在チェックを指定います。
20行目は、Filesクラスのexistsメソッドでファイルの存在チェックを指定います。

package test1;

import java.nio.file.Files;
import java.nio.file.Paths;
 
public class Test1 {
    public static void main(String[] args) {
        
        String dir = "D:\\workspace123abc";
        String filename = "test12.txt";

        // フォルダが存在するかのチェック
        if (Files.isDirectory(Paths.get(dir))) {
            System.out.println("存在します");
        }else {
            System.out.println("存在しません");
        }
 
        // ファイルが存在するかのチェック
        if (Files.exists(Paths.get(dir, filename))) {
            System.out.println("存在します");
        }else {
            System.out.println("存在しません");
        }
    }
}

関連の記事

Java バイナリファイルの読み込みと書き込み(FileInputStreamとFileOutputStream)
Java バッファを利用したファイルの読み込みと書き込み(BufferedReaderとBufferedWriter)
Java 文字コードを指定したファイルの読み込みと書き込み(InputStreamReaderとOutputStreamWriter)
Java フォルダ内のファイルの一覧を取得するサンプル(Fileクラス)
Java ドライブの容量と空き容量を取得するサンプル(Fileクラス)
Java フォルダ・ファイルの作成/削除/移動のサンプル

 はまったらエンジニア特化型Q&Aサイト
【teratail(テラテイル)】で質問しましょう!


△上に戻る