Java ファイル操作: ファイルとフォルダーの読み取りと書き込み

JDK ネイティブ ファイル操作を使用する

JDK では、Java I/O API を使用してファイルやフォルダーを操作できます。Java I/O API は、ファイルやフォルダーを操作するための多くのクラスとインターフェイスを提供します。以下に、一般的に使用される Java I/O API クラスをいくつか示します。

  • -​java.io.File​ファイルとフォルダーのパス、およびファイルとフォルダーのプロパティと操作を表すために使用されます。
  • -​java.io.FileInputStream​ファイルからデータを読み取るために使用されます。
  • -​java.io.FileOutputStream​データをファイルに書き込むために使用されます。
  • -​java.io.FileReader​ファイルから文字を読み取るために使用されます。
  • -​java.io.FileWriter​ファイルに文字を書き込むために使用されます。
  • -​java.io.BufferedReader​文字ストリームからテキストを読み取るために使用されます。
  • -​java.io.BufferedWriter​文字ストリームにテキストを書き込むために使用されます。

ファイルを作成する

Java では、​java.io.File​クラス。以下に例を示します。

import java.io.File;

public class FileCreateExample {
    public static void main(String[] args) {
        File file = new File("test.txt");
        try {
            if (file.createNewFile()) {
                System.out.println("File created: " + file.getName());
            } else {
                System.out.println("File already exists.");
            }
        } catch (Exception e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

この例では、​File​オブジェクト、​createNewFile​メソッドを使用して「test.txt」という名前のファイルを作成しました。ファイルがすでに存在する場合は、「ファイルはすでに存在します。」と表示されます。

ファイルを読み取る

Java では、​java.io.FileInputStream​クラスを。以下に例を示します。

import java.io.FileInputStream;

public class FileReadExample {
    public static void main(String[] args) {
        try {
            FileInputStream fileInputStream = new FileInputStream("test.txt");
            int i;
            while ((i = fileInputStream.read()) != -1) {
                System.out.print((char) i);
            }
            fileInputStream.close();
        } catch (Exception e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

この例では、​FileInputStream​クラス「test.txt」ファイルからデータを読み取ります。次に、​while​ループファイルの内容を 1 文字ずつ読み取り、出力します。

ファイルに書き込む

Java では、​java.io.FileOutputStream​クラス。以下は例です

import java.io.FileOutputStream;

public class FileWriteExample {
    public static void main(String[] args) {
        try {
            FileOutputStream fileOutputStream = new FileOutputStream("test.txt");
            String text = "Hello, World!";
            byte[] bytes = text.getBytes();
            fileOutputStream.write(bytes);
            fileOutputStream.close();
            System.out.println("Successfully wrote to the file.");
        } catch (Exception e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

この例では、​FileOutputStream​クラス「Hello, World!」文字列を「test.txt」ファイルに書き込みます。

ファイルの削除

Java では、​java.io.File​クラス。以下に例を示します。

import java.io.File;

public class FileDeleteExample {
    public static void main(String[] args) {
        File file = new File("test.txt");
        if (file.delete()) {
            System.out.println("File deleted: " + file.getName());
        } else {
            System.out.println("Failed to delete the file.");
        }
    }
}

この例では、​File​オブジェクト、​delete​メソッドを使用して「test.txt」という名前のファイルを削除しました。

ファイルをコピーする

Java では、​java.io.FileInputStream​および​java.io.FileOutputStream​クラスを使用してファイルをコピーできます。以下に例を示します。

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class FileCopyExample {
    public static void main(String[] args) {
        try {
            FileInputStream fileInputStream = new FileInputStream("test.txt");
            FileOutputStream fileOutputStream = new FileOutputStream("test_copy.txt");
            byte[] buffer = new byte[1024];
            int length;
            while ((length = fileInputStream.read(buffer)) > 0) {
                fileOutputStream.write(buffer, 0, length);
            }
            fileInputStream.close();
            fileOutputStream.close();
            System.out.println("File copied successfully.");
        } catch (Exception e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

この例では、​FileInputStream​クラス「test.txt」ファイルからデータを読み取り、​FileOutputStream​クラスを使用してデータを「test_copy.txt」ファイルに書き込みます。

ファイルの名前を変更

Java では、​java.io.File​クラス。以下に例を示します。

import java.io.File;

public class FileRenameExample {
    public static void main(String[] args) {
        File file = new File("test.txt");
        File renamedFile = new File("test_renamed.txt");
        if (file.renameTo(renamedFile)) {
            System.out.println("File renamed successfully.");
        } else {
            System.out.println("Failed to rename the file.");
        }
    }
}

この例では、​File​オブジェクト、​renameTo​メソッドを使用して「test.txt」ファイルの名前を「test_renamed.txt」に変更します。

ファイルを見つける

Java では、​java.io.File​このクラス。以下に例を示します。

import java.io.File;

public class FileSearchExample {
    public static void main(String[] args) {
        File dir = new File(".");
        File[] files = dir.listFiles();
        for (File file : files) {
            if (file.isFile()) {
                System.out.println("File: " + file.getName());
            } else if (file.isDirectory()) {
                System.out.println("Directory: " + file.getName());
            }
        }
    }
}

この例では、現在のディレクトリを表す​File​オブジェクト​listFiles​、メソッドを使用して現在のディレクトリ内のすべてのファイルとフォルダを取得し、for ループを使用して各ファイルとフォルダの名前を出力します。

Apache Commons IO ライブラリの使用

JDK のネイティブ ファイル操作クラスの使用に加えて、ファイル操作にサードパーティのクラス ライブラリを使用することもできます。Apache Commons IO は、非常に人気のある Java ファイル操作クラス ライブラリであり、ファイル操作を容易にする多くの便利なクラスとメソッドを提供します。以下は、ファイル操作に Apache Commons IO ライブラリを使用する方法を示すサンプル コードです。

ファイルに書き込む

Apache Commons IO ライブラリを使用すると、ファイルへの書き込みがさらに簡単になります。以下は、​FileUtils​クラス。

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

public class FileWriteExample {
    public static void main(String[] args) {
        try {
            File file = new File("test.txt");
            String text = "Hello, World!";
            FileUtils.writeStringToFile(file, text, "UTF-8");
            System.out.println("Successfully wrote to the file.");
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

この例では、​FileUtils.writeStringToFile​メソッド文字列をファイルに書き込みます。このメソッドはファイルを自動的に作成するか、既存のファイルが存在する場合は上書きします。

ファイルの削除

ファイルの削除も、Apache Commons IO ライブラリを使用すると非常に簡単です。​FileUtils​ファイルを削除するクラスの使用例を次に示します。

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

public class FileDeleteExample {
    public static void main(String[] args) {
        File file = new File("test.txt");
        try {
            FileUtils.forceDelete(file);
            System.out.println("File deleted: " + file.getName());
        } catch (IOException e) {
            System.out.println("Failed to delete the file.");
            e.printStackTrace();
        }
    }
}

この例では、ファイルを削除する​FileUtils.forceDelete​メソッド。​File​クラスのメソッドとは異なり​delete​​FileUtils.forceDelete​このメソッドは空ではないフォルダーを削除できます。

ファイルをコピーする

Apache Commons IO ライブラリを使用すると、ファイルのコピーも非常に簡単になります。以下は、​FileUtils​クラス。

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

public class FileCopyExample {
    public static void main(String[] args) {
        try {
            File srcFile = new File("test.txt");
            File destFile = new File("test_copy.txt");
            FileUtils.copyFile(srcFile, destFile);
            System.out.println("File copied successfully.");
        } catch (IOException e)
              System.out.println("An error occurred.");
          e.printStackTrace();
        }
        }
}

この例では、あるファイルを別のファイルにコピーする​FileUtils.copyFile​メソッド。このメソッドはターゲット ファイルを自動的に作成します。ターゲット ファイルが既に存在する場合は、既存のファイルを上書きします。

ファイルとフォルダーを一覧表示する

Apache Commons IO ライブラリを使用すると、ファイルとフォルダーの一覧表示も非常に簡単になります。以下は、​FileUtils​クラス。

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.util.Collection;

public class FileSearchExample {
    public static void main(String[] args) {
        File dir = new File(".");
        Collection<File> files = FileUtils.listFilesAndDirs(dir, null, true);
        for (File file : files) {
            if (file.isFile()) {
                System.out.println("File: " + file.getName());
            } else if (file.isDirectory()) {
                System.out.println("Directory: " + file.getName());
            }
        }
    }
}

この例では、​FileUtils.listFilesAndDirs​メソッド指定されたディレクトリ内のすべてのファイルとフォルダーを取得します。このメソッドは​Collection​​File​すべてのファイルとフォルダーを含むオブジェクトを返します。

結論は

Java でのファイル操作は非常に一般的なタスクです。JDK には、ファイル操作を簡単に実行できる便利なクラスとメソッドが多数用意されています。さらに、Apache Commons IO など、ファイル操作をより簡単に実行できるサードパーティ ライブラリが多数あります。JDK を使用する場合でも、サードパーティのクラス ライブラリを使用する場合でも、ファイル操作は簡単です。

おすすめ

転載: blog.csdn.net/bairo007/article/details/132401060