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{
   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 words=new TreeSet(
			   new TextFile(
					   "D:\\NewJavaWorkspace\\18JavaIO系统\\src\\io\\TextFile.java","\\W+"));
	   print(words.headSet("a"));
   }
}


你可能感兴趣的:(Java基础)