IO流的整体内容: 1.java.io.File类的使用 2.IO原理及流的分类 3.文件流: FileInputStream / FileOutputStream / FileReader / FileWriter 4.缓冲流:BufferedInputStream / BufferedOutputStream / BufferedReader / BufferedWriter 5.转换流: InputStreamReader / OutputStreamWriter 6.对象流 ----序列化、反序列化: ObjectInputStream / ObjectOutputStream
其中学到了很多,例如删除多级文件: import java.io.File;
import java.util.Scanner;
/*键盘录入一个文件夹路径,删除该文件夹以及文件夹路径下的所有文件。
要求:录入的文件夹里面要有多个文件,包含有子文件夹。
提示:如果文件夹里面有文件,则需要先将文件删除才能删除文件夹。*/
public class Test17 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入文件路径:");
String s = sc.nextLine();
File file = new File(s);
deleteFile(file);
if (!file.exists()) {
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}
private static void deleteFile(File file) {
if (file.isFile()){
file.delete();
File parentFile = file.getParentFile();
parentFile.delete();
}else{
File[] files = file.listFiles();
if (files==null){
return;
}
for (File f : files){
if (f==null){
f.delete();
} else{
deleteFile(f);
}
}
}
}
}复制多级文件夹://复制多级文件
import java.io.*;
public class t1 {
public static void main(String[] args) throws IOException {
File srcFile = new File("E\\itcast");
File destFile = new File("f:\\");
copyFolder(srcFile, destFile);
}
private static void copyFolder(File srcFile, File destFile) throws IOException {
// 判断数据源File是否是目录
if (srcFile.isDirectory()) {
//在目的地下创建和数据源File名称一样的目录
String srcFileName = srcFile.getName();
File newFolder = new File(destFile + srcFileName);
if (!newFolder.exists()) {
newFolder.mkdir();
}
File[] fileArray = srcFile.listFiles();
for (File file : fileArray) {
copyFolder(file, newFolder);
}
} else {
File newFile = new File(destFile,srcFile.getName());
copy(srcFile,newFile);
}
}
private static void copy(File srcFile, File newFile) throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
byte[] bys = new byte[1024];
int len;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
} |