########################################
IO流:
IO:用于处理设备上的数据的技术。设备:内存,硬盘,光盘
流:系统资源,Windows系统本身就可以操作的设备。各种语言只是使用系统平台的这个资源。并对外提供了各种语言自己的操作功能,这些功能最终调用的是系统资源,使用完资源一定要记住:释放。
File类直接有了分隔符:File.separator
"c:"+File.separator+"a.txt"
################################################文件基本方法
File file = new File("F:"+File.separator+"eclipse_javaCode"+File.separator+ "day21"+File.separator+"src"+File.separator+"day21"+File.separator+ "shangxin.txt"); String file_name = file.getName(); //获取文件名 System.out.println(file_name); //shangxin.txt long file_size = file.length(); System.out.println(file_size); String file_parent_path = file.getParent(); //获取父目录的路径 System.out.println(file_parent_path); ########### String file_path = file.getAbsolutePath(); //获取绝对路径 System.out.println(file_path); //F:eclipse_javaCodeday21srcday21shangxin.txt long lc = file.lastModified(); //获取最后一次修改的时间 Date date = new Date(); DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); String lc_str = df.format(date); System.out.println(lc_str); //2018年2月23日 星期五 下午09时59分40秒 CST boolean b = file.isHidden(); //判断文件是否隐藏 System.out.println(b); b = file.createNewFile(); //创建文件,文件存在创建失败,没有该盘创建失败 System.out.println(b); b = file.delete(); //删除文件,不走回收站 file = new File("ai"+File.separator+"xdaq"); b = file.mkdirs(); //创建多级目录 System.out.println(b); b = file.delete(); //删除文件夹要注意,文件夹里面必须保证文件夹里面没有东西。 System.out.println(b); file = new File("e:"); long space = file.getFreeSpace(); //获取剩余空间大小 System.out.println(space);
##################################获取文件里面的文件名称列表和文件对象
File dir = new File("e:"); String[] names = dir.list(); //获取文件名称 if(names == null) return ; for(String i:names){ System.out.println(i); } ### File dir = new File("e:"); File[] names = dir.listFiles(); //获取文件对象 if(names == null) return ; for(File i:names){ System.out.println(i); }
#####################文件过滤器
用于文件文件过滤,如果是学习这个,需要分析一下下面的代码,这样才能更好的使用
重点:新建自己的过滤器类,继承FileFilter,实现accept方法,方法放回的为真就是不过滤的。
public class MyFileFilter implements java.io.FileFilter //以docx结尾 { public boolean accept(File pathname) { return pathname.getName().endsWith("docx"); } }
public class FileFilterByEnding implements FileFilter //在创建对象的时候确认以什么结尾。 { private String suffix; public FileFilterByEnding(String suffix) { super(); this.suffix = suffix; } @Override public boolean accept(File pathname) { return pathname.getName().endsWith(suffix); } }
public class FilterByContains implements FilenameFilter //在创建对象的时候确认包含什么字符 { private String content; public FilterByContains(String content) { super(); this.content = content; } @Override public boolean accept(File dir, String name) { return name.contains(content); } }
public class FilterBySuffix implements FilenameFilter //还是在创建对象的时候,确定以什么结尾 { private String ending; public FilterBySuffix(String ending) { super(); this.ending = ending; } @Override public boolean accept(File dir, String name) { //dir 代表被过滤的目录,遍历过程中文件或者文件夹的名字 return name.endsWith(ending); } }
File dir = new File("e:"); //获取文件夹里面的文件,返回文件数组形式 FilenameFilter filter = new FilterBySuffix("副"); filter = new FilterByContains("a"); String[] names = dir.list(filter); //这里有个调用 for(String i:names){ System.out.println(i); }
####################获取全部文件内容
public class GetAllFile { public static void main(String[] args) { File f = new File("F:"+File.separator+"E-drive-78234"+File.separator+"study"); getAllFile(f); } public static void getAllFile(File file){ File[] files = file.listFiles(); //获取文件数组 for(File f:files){ if(f.isDirectory()){ //如果是文件夹,则继续获取文件夹里面的数组 getAllFile(f); } else{ System.out.println(f); } } } }
##########删除目录
public class ShanWenJianJia { public static void main(String[] args) { File file = new File("f:"+File.separator+"eclipse_javaCode"+File.separator+ "day21"+File.separator+"day19"); System.out.println(file); ShanChu(file); } public static void ShanChu(File f){ File[] fs = f.listFiles(); if(fs==null){ return; } for(File file:fs){ if(file.isDirectory()){ ShanChu(file); } else{ System.out.println(file+":"+file.delete()); } } System.out.println(f+":"+f.delete()); } }