java查找指定目录下的所有.java文件,并输出文件名和文件大小,然后将所有的.java文件(原来为gbk编码),转换为utf-8编码
时间: 2023-05-20 18:02:11 浏览: 95
以下是Java代码,可以查找指定目录下的所有.java文件,并输出文件名和文件大小,然后将所有的.java文件(原来为gbk编码),转换为utf-8编码:
```java
import java.io.*;
public class JavaFileConverter {
public static void main(String[] args) {
String directoryPath = "C:/example/directory"; // 指定目录路径
File directory = new File(directoryPath);
if (!directory.isDirectory()) {
System.out.println("指定路径不是一个目录!");
return;
}
File[] javaFiles = directory.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".java"); // 只选择.java文件
}
});
if (javaFiles == null || javaFiles.length == 0) {
System.out.println("指定目录下没有.java文件!");
return;
}
for (File javaFile : javaFiles) {
System.out.println("文件名:" + javaFile.getName() + ",文件大小:" + javaFile.length() + "字节");
try {
FileInputStream fis = new FileInputStream(javaFile);
InputStreamReader isr = new InputStreamReader(fis, "gbk"); // 原来为gbk编码
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
br.close();
isr.close();
fis.close();
FileOutputStream fos = new FileOutputStream(javaFile);
OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8"); // 转换为utf-8编码
BufferedWriter bw = new BufferedWriter(osw);
bw.write(sb.toString());
bw.close();
osw.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
请注意,这个代码只是一个示例,实际应用中可能需要根据具体情况进行修改。
阅读全文