textfile java_文件读写工具类TextFile.java

//使用此工具类可以快速的实现读取文件内容到string,并封装到ArrayList中;进行一系列的操作之后,可以再讲内容写入到文件中。

//使用此工具可以避免JavaIO中一些繁琐的装饰操作,简化了编程

package net.mindview.util;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.Arrays;

public class TextFile extends ArrayList{

//read a file as a single string

public static String read(String fileName){

StringBuilder sb = new StringBuilder();

try{

BufferedReader in = new BufferedReader(new FileReader(

new File(fileName).getAbsoluteFile()));

try{

String s;

while((s=in.readLine()) != null){

sb.append(s);

sb.append("\n");

}

}finally{

in.close();

}

}catch(IOException e){

throw new RuntimeException(e);

}

return sb.toString();

}

//write a single file in one method call

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);

}

}

//Read a file, split by any regular expression

public TextFile(String fileName, String splitter){

super(Arrays.asList(read(fileName).split(splitter)));

//regular expression split() often leaves an empty

//stirng at the first plsition

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);

}

}

//测试

public static void main(String[] args) {

String file = read("e:\\data\\data3.txt");

System.out.println(file);

write("e:\\data\\data5.txt",file);

TextFile text = new TextFile("e:\\data\\data3.txt");

System.out.println(text);

text.write("e:\\data\\data6.txt");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值