[java][io][File]文件读写



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> {

private static final long serialVersionUID = 2198370200846025857L;

/**
* 读文件输出为字符串
*/
public static String read(String fileName) {
StringBuffer sb = new StringBuffer();
try {
File absoFile = new File(fileName).getAbsoluteFile();
BufferedReader br = new BufferedReader(new FileReader(absoFile));
try {
String s = null;
while ((s = br.readLine()) != null) {
sb.append(s).append("\n");
}
} finally {
if (br != null) {
br.close();
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return sb.toString();
}

/**
* 向文件中写入文本
*/
public static void write(String fileName, String text){
File abFile = new File(fileName).getAbsoluteFile();
try {
PrintWriter writer = new PrintWriter(abFile);
try {
writer.print(text);
} finally {
writer.close();
}
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}

public TextFile(String fileName, String splitter){
super(Arrays.asList(read(fileName).split(splitter)));
//split后常留下一个空
if(get(0).equals(" ")){
remove(0);
}
}

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 (FileNotFoundException e) {
throw new RuntimeException(e);
}
}

public static void main(String[] args) {
System.out.print(read("d:\\a.txt"));
write("d:\\a.txt","This is not the end of the file.");
System.out.print(read("d:\\a.txt"));

TreeSet<String> words = new TreeSet<String>(new TextFile("d:\\a.txt","\\W+"));
//打印首字母大写的单词
System.out.println(words.headSet("a"));
}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值