import java.io.*
/**
* JAVA实现的批量更改文件后缀名的程序。
*
* @author rommnn
*/
public class ExtBatchRename {
/**
* 修改程序。<br>
* 内部递归调用,进行子目录的更名
*
* @param path
* 路径
* @param from
* 原始的后缀名,包括那个(.点)
* @param to
* 改名的后缀,也包括那个(.点)
*/
public void reName(String path, String from, String to) {
File f = new File(path)
File[] fs = f.listFiles()
for (int i = 0i <fs.length++i) {
File f2 = fs[i]
if (f2.isDirectory()) {
reName(f2.getPath(), from, to)
} else {
String name = f2.getName()
if (name.endsWith(from)) {
f2.renameTo(new File(f2.getParent() + "/" + name.substring(0, name.indexOf(from)) + to))
}
}
}
}
public static void main(String[] args) {
ExtBatchRename rf = new ExtBatchRename()
rf.reName("d:/www.laozizhu.com", ".jsp", ".html")
}
}
“先读入,再写回”的方法时可行的这个文件有几十兆,不代表整个读入,不是占用几十兆内存。先写入头部的文字,再循环读一点源文件,写一点源文件。
RandomAccessFile 也可以,只是最初要留出空间,比如一些空格
你可以先定义一个InputStreamReader读取文本文件内容,然后再用一个LineNumberReader获取刚才InputStreamReader的对象,LineNumberReader里有个方法readLine()是用来一行一行的顺序读取字符,然后用一个判断语句来判断你想修改的行,最后删除或修改就可以了如果还不明白,你可以把详细程序的.java文件发给我,说明你程序的功能,我帮你看看,我的邮箱欢迎分享,转载请注明来源:内存溢出
评论列表(0条)