io流
2018-06-25 16:19 yelena 阅读(143) 评论(0) 编辑 收藏 举报输入:从存储数据的设备中取出数据存向内存中
输出:从内存中把数据存储到设备中
File类:表示文件和目录
成员变量:
String s1 = File.pathSeparator;//输出一个分号; System.out.println(s1); //与系统有关的 名称 分隔符 String s2 = File.separator;//输出一个反斜杠\ System.out.println(s2);
构造方法:
//不会判定你写的这个文件是否存在 //传字符串 File f = new File("d:\\12\\123\\abc.java"); System.out.println(f); //传两个字符串 String parent = "d:\\12\\123"; String child = "abc.java"; File f2 = new File(parent,child); System.out.println(f2); //传一个file对象,一个字符串 File p = new File("d:\\12\\123"); String c = "abc.java"; File f3 = new File(p,c); System.out.println(f3);
创建文件及目录和多个目录:
//创建文件 File f = new File("d:\\12\\xxx.java"); f.createNewFile(); //创建文件夹 File f1 = new File("d:\\12\\aaa"); f1.mkdir(); //创建多个文件夹 File f2 = new File("d:\\12\\aaa\\bbb\\ccc"); f2.mkdirs();
文件删除(目录中有文件的话,不能直接删除):
File f = new File("d:\\12\\xxx.java"); f.delete();
获得文件名称,路径,大小:
File f = new File("d:\\ruanjian\\code2\\jdk1.8.0_161\\src.zip"); //获取文件或文件夹的名称 System.out.println(f.getName()); //相当于toString方法,getParent()方法获得上一级目录的路径 System.out.println(f.getPath()); //获得文件或文件夹的大小,获得是文件的字节数KB System.out.println(f.length());
相对路径及绝对路径:
//相对路径,获得工程根路径+你的相对路径 File f = new File("src"); System.out.println(f.getAbsolutePath());
文件及目录是否存在,是否为文件或者目录:
//是否存在 File f = new File("d:\\12\\aaa"); System.out.println(f.exists()); //是否是文件夹 System.out.println(f.isDirectory()); //文件对象是否是文件 System.out.println(f.isFile());
listFiles()方法:获得指定目录(文件夹)中所有的文件和目录
指定的文件夹必须存在,必须是文件夹才行
过滤器:要自定义一个过滤器类实现fileFilter类,并重写accept()方法
public class MyFilter implements FileFilter { @Override public boolean accept(File pathname) { // TODO Auto-generated method stub String name = pathname.getName(); boolean flag = name.endsWith(".java"); return flag; } }
public static void main(String[] args) { File f = new File("d:\\12"); getFile(f); } public static void getFile(File f){ File[] file = f.listFiles(new MyFilter()); for(File f1:file){ System.out.println(f1); } }
递归:方法自己调用自己
递归一定要有出口,否则内存溢出;递归次数不能太多,否则内存溢出
打印目录中所有的文件:
public static void getAllFile(File f){ File[] file = f.listFiles(); for(File f1:file){ if(f1.isDirectory()){ getAllFile(f1); }else{ System.out.println(f1); } } }
查看目录下所有的java文件
public class MyFilter implements FileFilter{ @Override public boolean accept(File pathname) { // TODO Auto-generated method stub if(pathname.isDirectory()){ return true; } return pathname.getName().toLowerCase().endsWith(".java"); } }
public static void main(String[] args) { File file = new File("d:\\12"); method(file); } public static void method(File file){ File[] files = file.listFiles(new MyFilter()); for(File f:files){ if(f.isDirectory()){ method(f); }else{ System.out.println(f); } } }