//新文件File对象//复制前改名 File newFile = new File(destFile,file.getName().replace(\ //用高效的字节输入流封装数据源 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
//用高效的字节输出流封装目的地 BufferedOutputStream bos = FileOutputStream(newFile)); byte[] bys= new byte[1024]; int len = 0;
//判断是否读到文件结尾
while( (len = bis.read(bys)) != -1 ) {
new
BufferedOutputStream(new
//将数据写到文件中 bos.write(bys,0,len); //刷新缓存流 bos.flush(); } //关闭流对象 bis.close(); bos.close(); } } } }
/////////////////////////////////////////////////////////// \/*
题目1: 将项目路径下java_all目录下所有的.java文件复制到项目路径下Java_jad 文件夹下,并将文件名从原来的.java修改成.jad*/
\/*题目2: 编写一个程序,把一个目录里边的所有带.java文件拷贝到另一个目录中, 拷贝成功后,把后缀名是.java的文件改为.txt文件。(注意事项:是先拷贝, 拷贝成功后才可以改后缀名的)*/ \★将以下代码改改路径和扩展名即可★) /* 思路: 1、用File对象封装目录 2、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组 3、遍历这个File数组,得到每一个File对象 4、判断该File对象是否是文件 a、如果是文件
*/
b、继续判断是否以.java结尾 是:复制文件 在复制完成后改名 否:不复制
//导包
import java.io.IOException; import java.io.File;
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; class FileCopySingleFolderByByte { public static void main(String[] args) throws IOException {
//用File对象封装目录
File srcfile = new File(\//用File对象封装目录
File destFile = new File(\
//调用复制的方法 copyFile(srcfile,destFile); } //复制方法 public static void copyFile(File srcFile, File destFile) throws IOException { //通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组 File[] fileArray = srcFile.listFiles(); //遍历这个File数组,得到每一个File对象 for(File file : fileArray) { //判断该File对象是否是文件 if(file.isFile()) { //如果不是以java为后缀的不复制,执行下次循环 if(!file.getName().endsWith(\ { continue; } //新文件 File newFile = new File(destFile, file.getName()); //用高效的字节输入流封装数据源 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
//用高效的字节输出流封装目的地 BufferedOutputStream bos = FileOutputStream(newFile)); byte[] bys= new byte[1024]; int len = 0;
//判断是否读到文件结尾
while( (len = bis.read(bys)) != -1 ) { }
//将数据写到文件中 bos.write(bys,0,len); //刷新缓存流 bos.flush();
new BufferedOutputStream(new
//关闭流对象 bis.close(); bos.close();
//得到新文件名
String newName = newFile.getName().replace(\//根据新文件名创建新文件对象
File tempFile = new File(destFile,newName);
//改名 newFile.renameTo(tempFile); } } } }
///////////////////////////////////////////////////////////////////// \/*
题目: 统计一个文件夹下的txt文件个数,包括所有子文件夹内, 并将它们全部复制到D盘任意目录下 思路: (★提示★)用高效字节流可以用来复制任意类型文件 1、定义一个统计变量 2、用File对象封装目录 3、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组 4、遍历这个File数组,得到每一个File对象 5、判断该File对象是否是文件夹 a、如果是文件夹回到第3步 b、继续判断是否以.txt结尾 是:复制文件并将统计文件变量加1 否:不复制 */
//导包
import java.io.IOException; import java.io.File;
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; class FileCopyMultiFolderByByte {
//用来统计复制文件的总个数 public static int count =0;
public static void main(String[] args) throws IOException {
//用File对象封装目录
File srcfile = new File(\//用File对象封装目录
File destFile = new File(\
//调用复制的方法 copyFolder(srcfile,destFile); System.out.println(\文件复制完毕,共复制文件 \个\}
//复制方法
public static void copyFolder(File srcFile, File destFile) throws IOException {
//通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组 File[] fileArray = srcFile.listFiles();
//遍历这个File数组,得到每一个File对象 for(File file : fileArray) { //判断该File对象是否是文件夹 if(file.isDirectory()) {
//多级目录递归 copyFolder(file,destFile); } else { //文件 File newFile = new File(destFile, file.getName()); copyFile(file , newFile); } } }
//复制文件并计数的方法
public static void copyFile(File srcFile, File newFile) throws IOException { //如果不是以txt为后缀的不复制,跳出循环 if(!srcFile.getName().endsWith(\ {
continue; }
//统计文件个数的变量加1 count++;
//用高效的字节输入流封装数据源 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile)); //用高效的字节输出流封装目的地 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile)); byte[] bys= new byte[1024]; int len = 0;
//判断是否读到文件结尾
while( (len = bis.read(bys)) != -1 ) { //将数据写到文件中 bos.write(bys,0,len); //刷新缓存流 bos.flush(); }
//关闭流对象 bis.close(); bos.close(); } }
///////////////////////////////////////////////////////////////////// \/*
题目: 创建多线程的方式有几种?请代码实现 解答: 一共两种。 1、通过实现Runnable接口,重写run()方法 2、通过继承THread类,重写run()方法。 */ //
class ThreadTest { public static void main(String [] args)