继承ArrayList,对象实例化的时候将文件按行读入,每一行作为一个元素放入数组,后续对文件的操作可以转化为对ArrayList的操作
package com;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.TreeSet;
public class TextFile extends ArrayList<String> {
public static String read(String filename){
StringBuilder sb=new StringBuilder();
try {
BufferedReader br=null;
try{
br=new BufferedReader(new FileReader(new File(filename)));
String line=null;
while((line=br.readLine())!=null){
sb.append(line);
sb.append("\n");
}
}finally{
br.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
public static void write(String filename,String text){
PrintWriter pw=null;
try {
try{
pw=new PrintWriter(filename);
pw.print(text);
}finally{
pw.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public TextFile(String filename,String splitter){
super(Arrays.asList(read(filename).split(splitter)));
}
public void write(String filename){
PrintWriter pw=null;
try {
try{
pw=new PrintWriter(new File(filename));
for(String item:this){
pw.println(item);
}
}finally{
pw.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println((new File(".").getAbsolutePath()));
String str=TextFile.read("./src/com/TextFile.java");
TextFile.write("x1.txt", str);
TextFile tf=new TextFile("x1.txt","\\W+");
TreeSet<String> treeset=new TreeSet<String>(tf);
System.out.println(treeset.headSet("a"));
}
}