java think_ThinkJava-输入和输出

//Static functions for reading and writing text files as//a single string, and treating a file as an ArrayList.

packagecom.java.io;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.TreeSet;public class TextFile extends ArrayList{//Read a file as a single string:

public staticString read(String fileName) {

StringBuilder sb= newStringBuilder();try{

BufferedReader in= new BufferedReader(newFileReader(newFile(fileName).getAbsoluteFile()));try{

String s;while((s = in.readLine()) != null) {

sb.append(s);

sb.append("\n");

}

}finally{

in.close();

}

}catch(IOException e) {throw newRuntimeException(e);

}returnsb.toString();

}//Write a single file in one method call:

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(e);

}

}public voidwrite(String fileName) {try{

PrintWriter out= newPrintWriter(newFile(fileName).getAbsoluteFile());try{for(String item : this)

out.println(item);

}finally{

out.close();

}

}catch(IOException e) {throw newRuntimeException(e);

}

}//Read a file, split by any regular expression:

publicTextFile(String fileName, String splitter) {super(Arrays.asList(read(fileName).split(splitter)));//Regular expression split() often leaves an empty//String at the first position:

if(get(0).equals("")){

remove(0);

}

}//Normally read by lines:

publicTextFile(String fileName) {this(fileName, "\n");

}public static voidmain(String[] args) {

String file= read("src/com/java/io/TextFile.java");

write("test.txt", file);

TextFile text= new TextFile("test.txt");

text.write("test2.txt");//Break into unique sorted list of words://TreeSet是有序的set//\\W+以非单词分割,得到的都是单词list,TextFile本身就是一个ArrayList,组成了TextFile;//TreeSet的构造函数 TreeSet

TreeSet words = new TreeSet(new TextFile("src/com/java/io/TextFile.java", "\\W+"));//Display the capitalized words://打印出TreeSet中小于'a'的,就是打印出大写字母的

System.out.println(words.headSet("a"));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值