I/O复制文件夹&递归&改名
程序员文章站
2024-03-09 10:30:47
...
-
随机获取文本中的名称,一行一个名称。
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Random; /* * 要求:文本文件中存储了几个名称,写一个程序实现随机获取一个名称。 */ public class GetName { public static void main(String[] args) throws IOException { // 把文本文件中的数据存储到集合中 BufferedReader br = new BufferedReader(new FileReader("Name.txt")); ArrayList<String> array = new ArrayList<String>(); String line = null; while ((line = br.readLine()) != null) { array.add(line); } br.close(); Random r = new Random(); int index = r.nextInt(array.size()); String name = array.get(index); System.out.println("名称为:" + name); } }
-
复制单级文件夹
/* 要求:复制单极文件夹 数据源:E:\\Java 目的地:E:\\JavaTest */ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyFolderDemo { public static void main(String[] args) throws IOException { File srcFolder = new File("E:\\Java"); File destFolder = new File("E:\\JavaTest"); if (!destFolder.exists()) { destFolder.mkdir(); } File[] fileArray = srcFolder.listFiles(); for (File file : fileArray) { String name = file.getName(); File newFile = new File(destFolder, name); copyFile(file, newFile); } } private static void copyFile(File file, File newFile) throws IOException { BufferedInputStream bis = new BufferedInputStream(new FileInputStream( file)); 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.close(); bis.close(); } }
-
复制单级文件夹&改名
/*for example*/ /* 要求:复制指定目录下的指定数据类型文件,并修改后缀名。 指定的文件是:.java文件。 指定的后缀名是:.txt 指定的目录是:TestCc 数据源:E:\\Java\\*.java 目的地:E:\\Jad\\*.jad */ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; public class CopyFolderDemo { public static void main(String[] args) throws IOException { /*File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。 */ File srcFolder = new File("E:\\Java"); File destFolder = new File("E:\\Jad"); if (!destFolder.exists()) { destFolder.mkdir(); } File[] fileArray = srcFolder.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return new File(dir, name).isFile() && name.endsWith(".java"); } }); // 遍历该File数组,得到每一个File对象. for (File file : fileArray) { /* File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例。 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例。 */ String name = file.getName(); File newFile = new File(destFolder, name); copyFile(file, newFile); } //改名遍历过程. File[] destFileArray = destFolder.listFiles(); for (File destFile : destFileArray) { String name =destFile.getName(); //DataTypeDemo.java String newName = name.replace(".java", ".jad");//DataTypeDemo.jad File newFile = new File(destFolder,newName); destFile.renameTo(newFile); } System.out.println("Over!"); } /*文件复制函数*/ private static void copyFile(File file, File newFile) throws IOException { BufferedInputStream bis = new BufferedInputStream(new FileInputStream( file)); 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.close(); bis.close(); } }
-
复制多级文件夹
/* *要求:复制多极文件夹. 数据源:E:\\JavaTest 目的地:E:\\ */ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyFoldersDemo { public static void main(String[] args) throws IOException { File srcFile = new File("E:\\JavaTest"); File destFile = new File("E:\\"); copyFolder(srcFile, destFile); } private static void copyFolder(File srcFile, File destFile) throws IOException { if (srcFile.isDirectory()) { File newFolder = new File(destFile, srcFile.getName()); newFolder.mkdir(); File[] fileArray = srcFile.listFiles(); for (File file : fileArray) { copyFolder(file, newFolder); } } else { File newFile = new File(destFile, srcFile.getName()); copyFile(srcFile, newFile); } } private static void copyFile(File srcFile, File newFile) throws IOException { 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.close(); bis.close(); } }
下一篇: 如何使用Java实现复制文件夹的操作