| 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▲ |