黑马程序员技术交流社区
标题:
io流练习
[打印本页]
作者:
xuxu5112
时间:
2015-9-22 23:27
标题:
io流练习
package com.xuchang.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test2 {
/**
* 题目2:
编写一个程序,将D:\Java目录下的所有java文件复制到D:\jad目录下,
并将原来文件的扩展名从.java改为.jad
需求:
先复制,后改名。
1.创建字节输入流对象关联 D:\Java
2.创建字节输出流对象关联D:\jad
3.调用copy()方法
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//封装源文件和目标文件
File src = new File("D:\\Java");
File dest = new File("D:\\jad");
//调用copy()方法
copy(src,dest);
System.out.println("复制成功");
}
/*定义copy()方法将源文件夹下所有的以.java结尾的文件复制到目标文件夹下并改名
* A.返回值类型void
* B.参数列表 File src,File dest
* 3.调用listFiles()方法获得Java文件夹下所有文件对象的数组
4.遍历该数组 并判断 如果是文件 则判断是否以.java结尾 若以.java结尾则先赋值到D:\jad中再改名
若是文件夹则递归
* */
public static void copy(File src,File dest) throws IOException {
//3.调用listFiles()方法获得Java文件夹下所有文件对象的数组
File[] files = src.listFiles();
//4.遍历该数组 并判断 如果是文件 则判断是否以.java结尾 若以.java结尾则先复制到D:\jad中再改名
//若是文件夹则递归
for(File file : files) {
if(file.isFile() &&file.getName().endsWith(".java")) {
//1.创建字节输入流对象关联 D:\Java
FileInputStream fis = new FileInputStream(file);
//2.创建字节输出流对象关联D:\jad\文件名
File newFile = new File(dest,file.getName());
FileOutputStream fos = new FileOutputStream(newFile);
//定义临时变量len
int len;
//不停的读写 知道read()返回-1
while((len = fis.read()) != -1) {
fos.write(len);
}
fis.close();//关流释放资源
fos.close();
//改名调用renameTo(File file)方法
newFile.renameTo(new File(dest,newFile.getName().replace(".java", ".jad")));
//这里要注意 新的文件路径要带上dest
//不知道为啥改名不成功
//如果是文件夹则递归
}else if(file.isDirectory()){
copy(file,dest);
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2