非常实用的Java文件操作类

来源:互联网 发布:繁体字转换简体字 mac 编辑:程序博客网 时间:2024/05/17 23:59
import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.Arrays;/** * 一个非常实用的文件操作类 *  * @author zhangjunying *  */public class TextFile extends ArrayList<String> {    private static final long serialVersionUID = -1942855619975438512L;    // 以字符串形式读取文件    public static String read(String filename) {        StringBuilder sb = new StringBuilder();        try {            BufferedReader in = new BufferedReader(new FileReader(new File(                    filename).getAbsoluteFile()));            String s;            try {                while ((s = in.readLine()) != null) {                    sb.append(s);                    sb.append("\n");                }            } finally {                in.close();            }        } catch (IOException e) {            throw new RuntimeException(e);        }        return sb.toString();    }    // 在一个方法调用中写一个文件    public static void write(String fileName, String text) {        try {            PrintWriter out = new PrintWriter(                    new File(fileName).getAbsoluteFile());            try {                out.print(text);            } finally {                out.close();            }        } catch (IOException e) {            throw new RuntimeException(e);        }    }    // 读取一个文件,通过任何正则表达式拆分    public TextFile(String fileName, String splitter) {        super(Arrays.asList(read(fileName).split(splitter)));        if (get(0).equals(""))            remove(0);    }    // 正常按行读取    public TextFile(String fileName) {        this(fileName, "\n");    }    public void write(String fileName) {        try {            PrintWriter out = new PrintWriter(                    new File(fileName).getAbsoluteFile());            try {                for (String item : this)                    out.println(item);            } finally {                out.close();            }        } catch (IOException e) {            throw new RuntimeException(e);        }    }    /**     * 读取二进制文件     *      * @param file     *            file对象     * @return     * @throws IOException     */    public static byte[] BinaryFile(File file) throws IOException {        BufferedInputStream bf = new BufferedInputStream(new FileInputStream(                file));        try {            byte[] data = new byte[bf.available()];            bf.read(data);            return data;        } finally {            bf.close();        }    }    /**     * 读取二进制文件     *      * @param file     *            文件路径     * @return     * @throws IOException     */    public static byte[] BinaryFile(String file) throws IOException {        return BinaryFile(new File(file).getAbsoluteFile());    }    // 测试,我已经在根目录生成了一个名为reflectDemo.java的文件    public static void main(String[] args) {        String path = "/home/zhangjunying/Workspaces/MyEclipse Professional 2014/BasicInterviewQuestions/src/reflectDemo.java";        /* read() 测试 */        System.out.println(read(path));        /* write() 测试 */        write("out.d", "测试写");        /* 构造测试 */        TextFile tf = new TextFile(path);    }}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老师不收礼物怎么办 发票跨年了怎么办 一用力就头疼怎么办 小孩天天玩游戏怎么办 手机分期人死了怎么办 人死了手机欠费怎么办 晚上想玩手机怎么办 孩子溺水后发烧怎么办 去台湾多次签证怎么办 怀孕不能玩手机怎么办 孕期天天玩手机怎么办 小孩子在家偷钱怎么办 小朋友被鸡抓伤怎么办 宝宝在学校不说怎么办? 宝宝不和小朋友玩怎么办 初中孩子不想上学怎么办 孩子装病不想上学怎么办 中学生叛逆不愿意上学怎么办 孩子去幼儿园哭闹怎么办 孩子哭闹不上学怎么办 孩子中班还哭怎么办 小孩子不爱上幼儿园怎么办 小孩子不爱去幼儿园怎么办 宝宝去幼儿园哭闹怎么办 宝宝上幼儿园哭闹怎么办 小朋友上幼儿园哭闹怎么办 迷路了怎么办幼儿故事 大班迷路了怎么办故事 玩手机眼睛干涩怎么办 宝睡觉不踏实怎么办 觉得自己老了怎么办 微信没自动扣费怎么办 东西放在家找不到怎么办 刚怀孕同房流产怎么办 开车遇上送葬的怎么办 流水钓鱼走漂怎么办 水库里小鱼太多怎么办 英国留学生怎么办澳签 老赖欠货款不还怎么办 老赖失信出国怎么办 打完预防针呕吐怎么办