首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java批改文件内容

2012-09-02 
java修改文件内容最近在看《java编程思想》一书,里面的示例代码真心很好,但是遇到个问题就是从网上搞来的代

java修改文件内容
    最近在看《java编程思想》一书,里面的示例代码真心很好,但是遇到个问题就是从网上搞来的代码包解压之后拿到eclipse中不能直接用,原因也很明显,书中的代码虽按包的结构来归纳代码,却没有在其中的*.java中加入对应的包名(e.g.,package concurrency)。于是乎需要读者手动给每个文件的第一行加上这么一句。。。由于文件量巨大,此时实在繁琐。
   于是,我就写了下面这么个简陋但还算实用的工具类,可以一次性将所有文件修改好。这个类正好用到了这段时间学习到javaI/O系统,正则表达式等相关知识,也算是对所学内容的阶段性总结下。

import java.io.*;import java.util.regex.Pattern;public class testtools {public static void main(String[] args) throws IOException {String path="D:\\workspace\\fortest\\src\\concurrency\";File file = new File(path); String [] string = file.list(new FilenameFilter(){ //匿名内部类@Overridepublic boolean accept(File arg0, String name) {  return  Pattern.compile([ST]\\w+.java")                           .matcher(name).matches();//正则表达式,匹配S或T开头的字母组成的后缀为java的文件。}  }); for(String ss: string){ BufferedReader in = new BufferedReader(new FileReader(path+ss));String s;StringBuilder sb = new StringBuilder();while ((s = in.readLine()) != null) {sb.append(s + "\n");}in.close();BufferedWriter out = new BufferedWriter(new FileWriter(path+ss));out.write("package concurrency;\n" + sb);out.close();}}}

热点排行