package jaist.css.covis.util;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/**
* ファイル読み書きクラス
*
* @author miuramo
*
*/
public class FileReadWriter {
/** ファイルを読み込み,各行を配列に入れて返す
* @param fn ファイル名
* @return 文字列の配列(各行が要素)
*/
public static String[] getLines(String fn) {
if (fn == null) return new String[]{""};
ArrayList<String> list = new ArrayList<String>();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(fn)));
String line = null;
/* ファイル読み込み */
while ((line = br.readLine()) != null) {
list.add(line);
}
/* ファイルを閉じます */
br.close();
} catch (IOException err) {
System.out.println("ReadError:" + fn);
}
return (String[]) list.toArray(new String[list.size()]);
}
/** 配列をファイルに書き込む
*
* @param fn ファイル名
* @param data 文字列の配列(各行が要素)
*/
public static void putLines(String fn, String data[]) {
try {
FileWriter filewriter = new FileWriter(fn, false);
for (int i = 0; i < data.length; i++) {
/* 改行文字追加 */
data[i] = data[i] + "\n";
/* 文字列を書き込みます */
filewriter.write(data[i]);
}
/* ファイルを閉じます */
filewriter.close();
} catch (IOException e) {
System.out.println("WriteError:" + fn);
}
}
/** ArrayListをファイルに書き込む
*
* @param fn ファイル名
* @param list 文字列のArrayList(各要素が行となる)
*/
public static void putLines(String fn, ArrayList<String> list) {
try {
FileWriter filewriter = new FileWriter(fn, false);
for (String s : list) {
/* 文字列を書き込みます */
filewriter.write(s + "\n");
}
/* ファイルを閉じます */
filewriter.close();
} catch (IOException e) {
System.out.println("WriteError:" + fn);
}
}
/**
* 文字列を分割して配列で返します
* @param delim 区切り文字
* @param text 分割したいテキスト
* @return 分割した文字列の配列
*/
public static String[] split(String delim, String text) {
int index = -1;
ArrayList<String> list = new ArrayList<String>();
while ((index = text.indexOf(delim)) != -1) {
list.add(text.substring(0, index));
text = text.substring(index + delim.length());
}
list.add(text);
String[] ret = (String[]) list.toArray(new String[list.size()]);
return ret;
}
}