Java 文本文件读写工具类

 下面的TextFile类包含static 方法可以像简单字符串那样读写文本文件,并且可以创建一个TextFile对象,它用一个ArrayList来保存文件的若干行。

package io;

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.TreeSet;
import static net.mindview.util.Print.*;
/*文件读写工具类。
 * read()方法将每行添加到StringBuffer,并且每行换上换行符,因为在读的时候换行符会被去除掉。
 * 接着返回一个包含整个文件的字符串。
 * write()打开文本并将其写入文件。*/
public class TextFile extends ArrayList<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();
   }
   
   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)));
   }
   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("D:\\NewJavaWorkspace\\18JavaIO系统\\src\\io\\TextFile.java");
	   write("test.txt",file);
	   TextFile text=new TextFile("test.txt");
	   text.write("test2.txt");
	   TreeSet<String> words=new TreeSet<String>(
			   new TextFile(
					   "D:\\NewJavaWorkspace\\18JavaIO系统\\src\\io\\TextFile.java","\\W+"));
	   print(words.headSet("a"));
   }
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值