黑马程序员----IO流(File类)
来源:互联网 发布:沧州洗浴软件 编辑:程序博客网 时间:2024/05/04 00:24
——- android培训、java培训、期待与您交流! ———-
File类
用来将文件或者文件夹封装成对象的类,方便对文件与文件夹的属性信息进行操作。
File对象可以作为参数传递给流的构造函数。
流对象可以操作文件,(只能操作数据),但是不能操作文件以及文件夹的属性信息。
File类的常见方法:
1.创建:
boolean createNewFile();在指定位置创建文件,如果该文件已经存在,则不创建,返回false;
和输出流不一样,输出流对象一建立就会创建文件,如果文件存在,则覆盖。
boolean mkdir();只能创建一级文件夹;
boolean mkdirs();创建多级文件夹;
2.删除:
boolean delete();//删除失败返回false;
void deleteOnExit();//在程序退出时删除指定文件;
3.判断:
boolean exists();文件是否存在;
boolean canExecute();是否能执行
isFile();//判断是否为文件;
isDirectory();//判断是否为目录;
isHidden();//判断是否是隐藏文件。尽力不要访问系统中被隐藏的文件;
isAbsolute();//判断文件是否为绝对路径,即使文件不存在也会判断;
注意:对一个文件判断其是目录还是文件对象的时候,必须先判断这个文件对象封装的内容是否存在。
4.获取信息:
getName();
getPath();//如果是相对路径,就返回相对路径,如果是绝对路径,就返回绝对路径;
getParent();//返回文件绝对路径中的父目录(具体地说就是该文件或者文件夹的上一层目录),如果没有明确指定目录(相对路径),则返回的是空null;
getAbsolutePath();//无论是相对路径还是绝对路径,都返回绝对路径;
long lastModified();//返回最后修改时间;
long length();//返回文件大小;
5.重命名:
renameTo(); //类似于剪切;
public class IO_FileMethod_1{ public static void main(String[] args) throws IOException { consMethod(); method_1(); method_2(); method_3(); method_4(); method_5(); } public static void method_1() throws IOException { File f=new File("file.txt"); //退出时删除文件: f.deleteOnExit(); //创建: sop("create:"+f.createNewFile()); //删除: sop("delete:"+f.delete()); } public static void method_2() { File f=new File("file.txt"); //sop("exist:"+f.exists()); //sop("execute:"+f.canExecute()); //创建一个文件夹: File dir=new File("d:\\abc\\v\\f\\d\\d"); //sop("mkdir:"+dir.mkdir());//mkdir()只能创建一级目录; sop("mkdirs:"+dir.mkdirs()); } public static void method_3() { File f=new File("d:\\file.txt"); //对一个文件判断其是目录还是文件对象的时候,必须先判断这个文件对象封装的内容是否存在。 //sop("create:"+f.createNewFile()); //sop("mkdirs:"+f.mkdirs()); sop("exist:"+f.exists()); sop("dir:"+f.isDirectory()); sop("file:"+f.isFile()); sop(f.isAbsolute());//绝对路径; } public static void method_4() { File f=new File("d:\\get.txt"); sop("path--"+f.getPath()); sop("abspath--"+f.getAbsolutePath()); sop("parent--"+f.getParent()); sop("time--"+f.lastModified());//返回最后修改时间; sop("length--"+f.length());//返回文件大小; } public static void method_5() { File f1=new File("c:\\Test.java"); File f2=new File("c:\\haha.java"); sop("rename:"+f1.renameTo(f2)); } public static void consMethod()//构造方法演示; { //创建File对象: File f1=new File("c:\\0.java");//将文件封装成对象,可以将已有的或者未出现的文件或者文件夹封装成对象;; //参数分开传递: File f2=new File("c:\\abc","b.txt");//左边指定的是父目录,右边指定的是文件名; File d=new File("c:\\abc"); File f3=new File(d,"c.txt");//与f2其实是一样的。 sop("f1"+f1); sop("f2"+f2); sop("f3"+f3); //File f4=new File("d:\\abc\\zzz\\a.txt"); File f4=new File("d:"+File.separator+"abc"+File.separator+"zzz"+File.separator+"\\a.txt");//目录分隔符,跨平台性; } public static void sop(Object obj) { System.out.println(obj); }}
list():
打印指定目录下的所有文件,包含隐藏文件,该目录必须存在。
当list所属的对象是一个文件的时候,返回的数组为null,数组长度为0;会发生空指针异常。
listRoot():
列出盘符;
练习:打印所有的.java文件。
FilenameFilter类
实现此接口的类实例可以用于过滤器文件名。list方法和listFiles方法的区别:
list方法返回的是当前目录下的文件以及文件夹名称;
listFiles方法返回的是当前目录下的文件以及文件夹对象,对象可以通过getName获取名称,可以通过length获取大小,可以通过getPath获取路径.....
开发的时候用listFiles方法;
能不能拿当前目录下的子目录中的文件呢?
public class IO_2_FileMethod_2 { public static void main(String[] args) { listRootDemo(); listDemo(); System.out.println("-----------------------"); filenameFilter(); System.out.println("-----------------------"); filenameFilter_2(); } //用listFile方法实现: public static void filenameFilter_2() { File dir=new File("c:\\"); File[] files=dir.listFiles(); for(File f:files) { System.out.println(f.getName()+":"+f.length()); } } public static void filenameFilter() { File dir=new File("e:\\JAVA\\javastudy"); String[] arr=dir.list(new FilenameFilter() { public boolean accept(File dir,String name) { //System.out.println("dir:"+dir+" name:"+name); //扩展名是.java的文件: /* if(name.endsWith(".java")) { return true; } else return false;//通过返回值来判断要过滤的文件;true表示文件符合条件,false表示文件不符合条件而被过滤掉了; */ return name.endsWith(".java"); } }); System.out.println("len:"+arr.length); for(String name:arr) { System.out.println(name); } } public static void listDemo() { File f=new File("c:\\"); String[] names=f.list(); for(String name:names) { System.out.println(name); } } public static void listRootDemo() { File[] files=File.listRoots();//列出盘符; for(File f:files) { System.out.println(f); } }}
- 黑马程序员---IO流(File类)
- 黑马程序员----IO流(File类)
- 51.黑马程序员-IO流-File类
- 黑马程序员--IO流之File类
- 黑马程序员---------IO流File类
- 黑马程序员---IO流-File类,递归
- 黑马程序员---IO流及File类
- 黑马程序员--IO流中的File类
- 黑马程序员-IO流(File类、Properties 类)
- 黑马程序员——IO流(四)File类
- 黑马程序员-基础-IO流(概念,File类,递归)
- 黑马程序员----IO(Input Output)流及File类
- 黑马程序员-IO流之字符流,File类
- 黑马程序员-IO流 File类及Properties类
- 黑马程序员——IO流-File类
- 黑马程序员 java基础24天 IO流--File类
- 黑马程序员----IO流之File类等小结
- 黑马程序员 Java基础IO流之File类
- 华为OJ 合唱队数 java实现
- Activity重要方法总结
- JQuery遍历筛选方法
- 10. Regular Expression Matching 动态规划解法
- mongodb的java命令
- 黑马程序员----IO流(File类)
- 很有趣的小说
- 推荐!国外程序员整理的 C++ 资源大全
- 用javascript设置图片的轮播
- 不坠华年(大一篇)
- 【容斥(其实并不是)】【USACO】数三角形
- RxAndroid 的示例
- 在SQL Server中创建用户角色及授权(使用SQL语句)
- ZOJ 1241 Geometry Made Simple