Home | PageTop▲ |
package mania.util; import java.io.*; /** * ファイルの入出力に関する操作クラス * * @author JavaMania * @version 1.0 */ public class FileUtil { /** Default Encoding */ private static String DEFAULT_ENC = System.getProperty("file.encoding"); /** * 第2引数に与えられたファイルに第1引数のテキストを書き込む。
* エンコードはシステムデフォルトのエンコーディングを使用する。 * * @param txt * ファイルに書き込む文字列 * @param file * 書き込むファイル名 * @throws IOException */ public static void write(String txt, File file) throws IOException { write(txt, file, DEFAULT_ENC); } /** * 第2引数に与えられたファイルに第1引数のテキストを書き込む。
* 第3引数はエンコードを指定するが、システムデフォルトのエンコーディングを
* 使用する場合は不要である。 * * @param txt * ファイルに書き込む文字列 * @param file * 書き込むファイル名 * @param charset * エンコーディング * @throws IOException */ public static void write(String txt, File file, String charset) throws IOException { FileOutputStream fo = new FileOutputStream(file); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fo, charset)); bw.write(txt); bw.close(); fo.close(); } /** * 第1引数に与えられたファイルからテキストを読み込む。
* エンコードはシステムデフォルトのエンコーディングを使用する。 * * @param file * 読み込むファイル名 * @return 読み込んだ文字列 * @throws IOException */ public static String read(File file) throws IOException { return read(file, DEFAULT_ENC); } /** * 第1引数に与えられたファイルからテキストを読み込む。
* 第2引数はエンコードを指定するが、システムデフォルトのエンコーディングを
* 使用する場合は不要である。 * * @param file * 読み込むファイル名 * @param charset * エンコーディング * @return 読み込んだ文字列 * @throws IOException */ public static String read(File file, String charset) throws IOException { StringBuffer res = new StringBuffer(); FileInputStream fi = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(fi, charset)); int ch = 0; while ((ch = br.read()) != -1) { res.append((char) ch); } br.close(); fi.close(); return res.toString(); } /** * 第1引数に与えられたファイルを第2引数で与えられたファイルにコピーする。
* エンコードはシステムデフォルトのエンコーディングを使用する。 * * @param readFile * コピー元ファイル * @param writeFile * コピー先ファイル * @throws IOException */ public static void copy(File readFile, File writeFile) throws IOException { write(read(readFile), writeFile); } /** * 第1引数に与えられたファイルを第2引数で与えられたファイルにコピーする。
* エンコードはシステムデフォルトのエンコーディングを使用する。 * * @param file1 * コピー元ファイル * @param cs1 * コピー元エンコーディング * @param file2 * コピー先ファイル * @param cs2 * コピー先エンコーディング * @throws IOException */ public static void copy(File file1, String cs1, File file2, String cs2) throws IOException { write(read(file1, cs1), file2, cs2); } }
Home | PageTop▲ |
メソッドの概要 | |
---|---|
static void |
copy(java.io.File readFile,
java.io.File writeFile)
第1引数に与えられたファイルを第2引数で与えられたファイルにコピーする。 |
static void |
copy(java.io.File file1,
java.lang.String cs1,
java.io.File file2,
java.lang.String cs2)
第1引数に与えられたファイルを第2引数で与えられたファイルにコピーする。 |
static java.lang.String |
read(java.io.File file)
第1引数に与えられたファイルからテキストを読み込む。 |
static java.lang.String |
read(java.io.File file,
java.lang.String charset)
第1引数に与えられたファイルからテキストを読み込む。 |
static void |
write(java.lang.String txt,
java.io.File file)
第2引数に与えられたファイルに第1引数のテキストを書き込む。 |
static void |
write(java.lang.String txt,
java.io.File file,
java.lang.String charset)
第2引数に与えられたファイルに第1引数のテキストを書き込む。 |
Home | PageTop▲ |
import java.io.File; import java.io.IOException; import mania.util.FileUtil; public class Main { public static void main(String[] args) { String str = "hello"; File test = new File("test.txt"); File copy = new File("copy.txt"); try { System.out.println("===実行結果==="); // ファイルへの書き込み FileUtil.write(str, test); // ファイルの読み込み System.out.println("test.txtの中身:" + FileUtil.read(test)); // ファイルのコピー FileUtil.copy(test, copy); // ファイルの読み込み System.out.println("copy.txtの中身:" + FileUtil.read(test)); } catch(IOException e) { e.printStackTrace(); } } }
===実行結果=== test.txtの中身:hello copy.txtの中身:hello
Home | PageTop▲ |