packageio;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.TreeSet;public class TextFile extends ArrayList{//读取文件,返回 String
public staticString read(String fileName){
StringBuilder sb=newStringBuilder();try{
BufferedReader in= newBufferedReader(newFileReader(newFile(fileName).getAbsoluteFile()));try{
String s ;//BufferedReader.readLine() 如果已到达流末尾,则返回 null
while ( (s = in.readLine())!= null) {
sb.append(s);
sb.append("\n");//要自己加上回车
}
}finally{
in.close();
}
}catch(IOException e) {throw newRuntimeException();
}returnsb.toString();
}//read//往文件写入 text
public static voidwrite(String fileName,String text){try{
PrintWriter out= newPrintWriter
(newFile(fileName).getAbsoluteFile());try{
out.print(text);
}finally{
out.close();
}
}catch(IOException e) {throw newRuntimeException();
}
}//write//构造器
publicTextFile(String fileName,String splitter) {super(Arrays.asList( read(fileName).split(splitter))) ;if (get(0).equals("")) {
remove(0);
}
}publicTextFile(String fileName ) {this(fileName, "\n");//以换行号切分
}//复制文件 写入到 文件
public voidwrite(String fileName){try{
PrintWriter out= new PrintWriter(newFile(fileName).getAbsoluteFile());try{for (String item : this) {
out.print(item);
}
}finally{
out.close();
}
}catch(FileNotFoundException e) {throw newRuntimeException(e);
}
}//write
public static voidmain(String[] args) {
String pa= "D:\\dev2\\workspace\\seehope\\bigwork\\src\\com\\ColorChoseListener.java";
String path2= "D:\\dev2\\workspace\\seehope\\bigwork\\src\\io\\TextFile.java";
String file=read(pa);
write("test.txt", file);
TextFile text= new TextFile("test.txt");//以换行号切分
TreeSet words = new TreeSet(new TextFile("src\\io\\TextFile.java" , "\\W+"));/*TreeSet words = new TreeSet(new TextFile(path2, "\\W+"));
非词符号切分 ,
1. 写完整路径 D:\\xx\\xx\\xx\\bigwork\\src\\io\\TextFile.java
2.相对于此项目(bigwork)的路径(src\io\xxx.java)*/
//字母开头的 码值小于 H
for (String string : words.headSet("H")) {
System.out.println(string);
}
}
}