运用一: 通过创建Dome类来实现对文件的读写操作:
import java.io.File;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
String pathname="D:\\abc";
//,创建file对象 --- 可以探测文件或者目录信息并对文件或者目录 进行操作
File file = new File(pathname);
//,判断此路径是否存在;
if(!file.exists()) { //,如果不存在,则创建
//file.createNewFile();
file.mkdir(); //创建目录 ;
}
//目录重命名 ;
//File dest =new File("E:\\abcd");
//file.renameTo(dest);
//删除;
//file.deleteOnExit();//存在则删除
//复制
}
}
运用二: 通过File对象拿某一目录下的资源;
import java.io.File;
import java.io.FileFilter;
public class Demo2 {
public static void main(String[] args) {
// 通过File对象拿某一目录下的资源;
File file = new File("E:\\文档");
// File[] files = file.listFiles();
// for(File f :files) {
// System.out.println(f);
// }
//listFiles(file);
listFilesByExt(file);
}
//获取某一目录下的指定类型的文件
public static void listFilesByExt(File path) {
//File[] files = path.listFiles(new MyFileFilter());
// File[] files =path.listFiles(new FileFilter() {
// @Override
// public boolean accept(File pathname) {
// return pathname.getName().endsWith(".txt");
// }
// });
File[] files = path.listFiles(pathname-> pathname.getName().endsWith(".txt"));
for(File f :files) {
System.out.println(f.getAbsolutePath());
}
}
//获取某一路径下所有资源
public static void listFiles(File path) {
if(path==null) return;
//获取目录下所有文件及子目录;
File[] list = path.listFiles();
for(int i=0;i<list.length;i++) {
File f = list[i];
if(f.isFile()) { //打印文件完整路径
System.out.println(f.getAbsolutePath());
}
}
for(int i=0;i<list.length;i++) {
File f=list[i];
if(f.isDirectory()) {
System.out.println(f.getAbsolutePath());
listFiles(f);
}
}
}
}
class MyFileFilter implements FileFilter{
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".txt");
}
}
运用三: 通过IO流来对文件进行读写操作:
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Demo {
public static void main(String[] args) {
String srcpath="D:\\workspace\\workspace2020\\day0314\\src\\cn\\lanqiao";
String destpath="F:\\abc";
copyPath(srcpath,destpath);
}
private static void copyPath(String srcpath,String destpath) {
File srcFile = new File(srcpath);
if(!srcFile.isDirectory()) {
return ;
}
File destFile = new File(destpath);
if(!destFile.exists()) { //不存在,则创建此目录 ;
destFile.mkdir();
}
File[] files =srcFile.listFiles( pathname -> pathname.getName().endsWith(".java"));
for(int i=0;i<files.length;i++) {
String f1 = files[i].getAbsolutePath();
String f2 = destFile.getAbsolutePath()+"\\" + files[i].getName();
copyFile(f1,f2);
}
}
private static void copyFile(String srcpath,String destpath) {
//需要一个字节输入流
//需要一个字节输出流
InputStream in=null;
OutputStream out = null;
try{
byte[] buffer = new byte[1024*8]; //一次读8k
int len = 0;
in =new FileInputStream(srcpath); //得到一个输入流
out=new FileOutputStream(destpath); //得到一个输出流;
while((len =in.read(buffer))!=-1) {
out.write(buffer,0,len);
}
}
catch(FileNotFoundException e) {e.printStackTrace();}
catch(IOException e) {e.printStackTrace();}
finally {
try {
if(out!=null) {
out.close();
}
if(in!=null) {
in.close();
}
} catch (IOException e) {e.printStackTrace();}
}
}
}