黑马程序员技术交流社区
标题:
如何更改一个文件的后缀名?
[打印本页]
作者:
碎流
时间:
2014-8-30 22:07
标题:
如何更改一个文件的后缀名?
批量修改一个文件夹 里java后缀名改为txt......我用string改不了,求思路
作者:
笑脸迷人
时间:
2014-8-30 22:15
获取文件
去文件名:使用subString方法获取(0,文件名.lastIndexOf("\\."))
加文件名: +".txt";
作者:
彭卫红
时间:
2014-8-30 22:42
这个有好几种方法,string,就算把文件名和后缀分开,然后参照1楼,还有 就算file用rename也能改
作者:
彭卫红
时间:
2014-8-30 22:57
找出d盘下所有的 .java 文件,拷贝至 c:\jad 目录下,并将所有文件的类型由.java 修改为.jad 。
public class test {
public static void main(String[] args) {
File f1 = new File("d:\\");
moveFile(f1);
}
public static void moveFile(File dir) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory())
moveFile(file);
else {
if (file.getName().endsWith(".java"))
file.renameTo(new File("c:\\jad\\"
+ file.getName().substring(0,
file.getName().lastIndexOf('.')) + ".jad"));
}
}
}
}
用rename修改后缀
复制代码
作者:
碎流
时间:
2014-8-30 22:59
笑脸迷人 发表于 2014-8-30 22:15
获取文件
去文件名:使用subString方法获取(0,文件名.lastIndexOf("\\."))
加文件名: +".txt";
谢谢,不过好像不可以,,,
作者:
不服™け你咬我
时间:
2014-8-30 23:14
板凳的很好啊
作者:
彭卫红
时间:
2014-8-30 23:24
本帖最后由 彭卫红 于 2014-8-30 23:38 编辑
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
public class CopyFolderTest {
public static void main(String[] args) throws IOException {
// 封装数据源和目的地
File file1 = new File("d:\\Java");
File file2 = new File("d:\\jad");
// 文件过滤器封装目录下String数组对象,匿名对象
String[] strArr = file1.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// 判断条件文件和后缀
return new File(dir, name).isFile() && name.endsWith(".java");
}
});
// 遍历
for (String str : strArr) {
// 输入流,封装符合条件的数据源
BufferedReader br = new BufferedReader(new FileReader(
new File(file1, str)));
// 输出流,改名并封装要装入的目的地
BufferedWriter bw = new BufferedWriter(new FileWriter(
new File(file2, str.replace(".java", ".jad"))));
// 遍历读写文件
String line = null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
}
br.close();
bw.close();
}
}
}
复制代码
作者:
彭卫红
时间:
2014-8-30 23:32
用string改后缀
package 多发点;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Jad2Java {
public static void main(String[] args) throws Exception {
File srcDir = new File("java");
if (!(srcDir.exists() && srcDir.isDirectory()))
throw new Exception("目錄不存在");
File[] files = srcDir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
});
System.out.println(files.length);
File destDir = new File("jad");
if (!destDir.exists())
destDir.mkdir();
for (File f : files) {
FileInputStream fis = new FileInputStream(f);
String destFileName = f.getName().replaceAll("\\.java$", ".jad");
FileOutputStream fos = new FileOutputStream(new File(destDir,
destFileName));
copy(fis, fos);
fis.close();
fos.close();
}
}
private static void copy(InputStream ips, OutputStream ops)
throws Exception {
int len = 0;
byte[] buf = new byte[1024];
while ((len = ips.read(buf)) != -1) {
ops.write(buf, 0, len);
}
}
}
复制代码
作者:
笑脸迷人
时间:
2014-8-31 06:47
7楼直接用replace这样修改文件名会出问题,万一文件名是xxx.java.java.java呢!或是 javaxxxx.java
最好的还是lastIndexOf,或是将文件名按"\\."分割,然后在组合文件名
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2