黑马程序员技术交流社区
标题:
copy
[打印本页]
作者:
Gyx
时间:
2015-1-3 23:35
标题:
copy
编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
作者:
zhaozhao
时间:
2015-1-4 15:44
小样例,看看是不是你想要的!
/*
需求:文件复制
分析:
1.明确要操作的是否是文本文件,如果是用FileReader
2.明确目的文件是否是文本问价,如果是使用FileWriter
3.明确是不是要提高效率,如果是,使用缓冲区
*/
import java.io.*;
class CopyDemo
{
public static void main(String[] args)throws Exception
{
BufferedReader bufr =
new BufferedReader(new FileReader("ReflectDemo.java"));
BufferedWriter bufw =
new BufferedWriter(new FileWriter("test.txt"));
String line = null;
while((line = bufr.readLine()) != null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufw.close();
System.out.println("Copy 完成!请检查!");
}
}
复制代码
作者:
godmmm
时间:
2015-1-4 16:55
这个主要是考的递归和IO流,直到怎么遍历文件夹的所有文件就差不多了。剩下的就是思路了。
/*将d:\\下的所有java文件拷贝到d:\\jad目录下后缀名为.txt
* 思路:要获取到d:\\下的所有java文件的绝对路径并封装为文件对象,
* 建立文件读取流关联文件,建立文件写入流,将文件复制到制定目录。
*
* 步骤: 1.遍历d:\\ 目录,找出.java文件,文件路径存放到一个文件中
* 2.读取路径,建立路径文件,关联读取流,复制文件,并将名字改为.txt
* */
import java.io.*;
public class CopyFiles {
public static void main(String[] args) throws IOException {
File src=new File("D:\\java\\0924\\day01");
File findFilePath=new File("D:/findJavaFile.txt");
File newFilePath=new File("D:/copy_JavaFiles");
StringBuilder sb=new StringBuilder();
findFiles(src,sb);
Writer wr=new FileWriter(findFilePath);
wr.write(sb.toString());
wr.close();
copyJavaFile(findFilePath,newFilePath);
}
private static void copyJavaFile(File findFilePath, File newFilePath) throws IOException {
if(!newFilePath.exists())
{
newFilePath.mkdirs();
}
BufferedReader bufr=new BufferedReader(new FileReader(findFilePath));
String line=null;
int num=0;
while((line=bufr.readLine())!=null)
{
File f=new File(line);//将每个java存在的路径封装为一个文件对象
BufferedReader bufr2=new BufferedReader(new FileReader(f));
BufferedWriter bufw=new BufferedWriter(new FileWriter(new File(newFilePath,f.getName().replaceAll("\\.java", "\\.txt"))));
String str=null;
while((str=bufr2.readLine())!=null)
{
bufw.write(str);
bufw.newLine();
}
bufr2.close();
bufw.close();
num++;
}
bufr.close();
System.out.println("共计"+num+"个java文件拷贝成功!");
}
public static void findFiles(File dir,StringBuilder sb)
{
File[] files=dir.listFiles();
for(File f:files)
{
if(f.isDirectory())
{
findFiles(f,sb);
}
else if(f.getName().endsWith(".java"))
{
sb.append(f.getAbsolutePath()+"\r\n");
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2