Java I/O学习 文件读写工具

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.FilenameFilter;

import java.io.IOException;

import java.io.PrintWriter;

import java.io.ObjectInputStream.GetField;

import java.lang.ref.PhantomReference;

import java.lang.ref.Reference;

import java.lang.ref.ReferenceQueue;

import java.lang.ref.SoftReference;

import java.lang.ref.WeakReference;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collection;

import java.util.Collections;

import java.util.HashSet;

import java.util.Iterator;

import java.util.LinkedList;

import java.util.List;

import java.util.Set;

import java.util.regex.Pattern;





class TextFile extends ArrayList<String> {

	

	public TextFile(String filename, String splitter) {

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

	}

	

	//通过文件路径读取一行一行的读取文件信息

	public static String read(String filename){

		StringBuilder sb = new StringBuilder();

		BufferedReader br = null;

		try {

			br = new BufferedReader(new FileReader(new File(filename).getAbsolutePath()));

		} catch (FileNotFoundException e) {

			// TODO Auto-generated catch block

			e.printStackTrace();

		}

		

		String s;

		try {

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

				sb.append(s); sb.append("\n");

			}

		} catch (IOException e) {

			// TODO Auto-generated catch block

			e.printStackTrace();

		}finally{

			try {

				br.close(); //记得要关闭文件

			} catch (IOException e) {

				// TODO Auto-generated catch block

				e.printStackTrace();

			}

		}

		return sb.toString();

	}

	

	//通过文件名,以及要写入的内容,一追加的方式写入文件

	public static void write(String filename, String text) throws IOException {

		PrintWriter pw = null;

		try {

			//设置为追加的方式

			pw = new PrintWriter(new FileWriter(filename, true));

			pw.println(text);

			

		} catch (FileNotFoundException e) {

			// TODO Auto-generated catch block

			e.printStackTrace();

		}finally{

			pw.close(); //关闭

		}		

	}

	//这个写入是根据构造函数,构造之后读取了信息,然后写入指定文件

	public void write(String filename) {

		PrintWriter pw = null;

		try {

			pw = new PrintWriter(new FileWriter(filename, true));

			for (String item : this) {

				pw.println(item);

			}

		} catch (IOException e) {

			// TODO Auto-generated catch block

			e.printStackTrace();

		}finally{

			pw.close();

		}

	}

	

}

public class Test{



	public static void main(String[] args) throws IOException {

		TextFile.write("/home/estar/Test/a.java", "加油,你行");

		System.out.println(TextFile.read("/home/estar/Test/a.java"));

		

		TextFile textFile = new TextFile("/home/estar/Test/a.java", "\n");

		textFile.write("/home/estar/Test/b.java");

		System.out.println(TextFile.read("/home/estar/Test/b.java"));

	}

}

  

 

你可能感兴趣的:(java)