求代码!!用Java读取一个文件夹中所有的java文件,并读取文件的内容,把所有的tab(缩进符)替换为4个空格 5

 我来答
gdmmd
2017-06-06 · TA获得超过1279个赞
知道大有可为答主
回答量:1581
采纳率:66%
帮助的人:1010万
展开全部

仅供参考

package com.kidd.test.zhidao;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * Hello world!
 *
 */
public class Execute {
public static void main(String[] args) {
File file = new File("D:\\123");

listFile(file);

}

private static void listFile(File file) {
if (!file.exists() || !file.isDirectory()) {
System.out.println("文件路径不合法!");
return;
}

String[] strings = file.list();

File javaFile;
for (String filename : strings) {
javaFile = new File(file.getPath() + File.separator + filename);
if (javaFile.isFile()) {
if (filename.endsWith(".java")) {
try {
modifyFile(javaFile);
} catch (IOException e) {
e.printStackTrace();
}
}
} else if (javaFile.isDirectory()) {
listFile(javaFile);
}
}

}

private static void modifyFile(File javaFile) throws IOException {
BufferedReader bReader = new BufferedReader(new FileReader(javaFile));

File tempFile = new File(javaFile.getParent() + File.separator + javaFile.getName() + ".tmp");
if (!tempFile.exists() && !tempFile.createNewFile()) {
System.out.println("创建临时文件失败.临时文件路径为:" + tempFile.getPath());
bReader.close();
return;
}

BufferedWriter bWriter = new BufferedWriter(new FileWriter(tempFile));

String temp;
boolean modify = false;
while ((temp = bReader.readLine()) != null) {
if (!modify && temp.indexOf("\t") != -1) {
modify = true;
}
bWriter.write(temp.replaceAll("\t", "    ")+"\r\n");
}

bWriter.close();
bReader.close();

if (modify) {
System.out.println("该文件需要修改.File=" + javaFile.getPath());
File bakFile = new File(javaFile.getPath() + ".bak");
if (!javaFile.renameTo(bakFile)) {
System.out.println("重命名源文件失败.源文件为:" + javaFile);
tempFile.delete();
return;
}

if (!tempFile.renameTo(javaFile)) {
System.out.println("重命名临时文件失败.");
if (!bakFile.renameTo(javaFile)) {
System.out.println("还原源文件失败,源文件现在的路径是:" + bakFile);
}
tempFile.delete();
return;
}
bakFile.delete();
} else {
System.out.println("该文件未存在需要修改的内容.File=" + javaFile.getPath());
tempFile.delete();
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式