读书人

黑马软件工程师-IO_File类

发布时间: 2013-02-19 11:11:40 作者: rapoo

黑马程序员-IO_File类
class FileDemo {public static void main(String[] args) throws IOException{method_5();}//对文件进行改名或移动public static void method_5(){File f1 = new File("c:\\Test.java");File f2 = new File("d:\\hahah.java");sop("rename:"+f2.renameTo(f1));//将f2移动到f1的地址,同时更改名字}//获取文件信息public static void method_4(){File f = new File("file.txt");sop("path:"+f.getPath());//获取路径sop("abspath:"+f.getAbsolutePath());//获取绝对路径sop("parent:"+f.getParent());//该方法返回的是绝对路径中的父目录。如果获取的是相对路径,返回null。//如果相对路径中有上一层目录那么该目录就是返回结果。}//对文件进行判断public static void method_3()throws IOException{File f = new File("d:\\java1223\\day20\\file2.txt");//f.createNewFile();//f.mkdir();//记住在判断文件对象是否是文件或者目的时,必须要先判断该文件对象封装的内容是否存在。//通过exists判断。sop("dir:"+f.isDirectory());//是否是目录sop("file:"+f.isFile());//是否是文件sop(f.isAbsolute());//是否是绝对路径}//演示创建文件夹public static void method_2(){File f = new File("file.txt");//sop("exists:"+f.exists());//sop("execute:"+f.canExecute());//创建文件夹File dir = new File("abc\\kkk\\a\\a\\dd\\ee\\qq\\aaa");sop("mkdir:"+dir.mkdirs());}//演示创建和删除文件public static void method_1()throws IOException{File f = new File("file.txt");sop("create:"+f.createNewFile());//在指定位置创建文件,如果文件已经存在,创建失败//sop("delete:"+f.delete());}//创建File对象public static void consMethod(){//将a.txt封装成file对象。可以将已有的和为出现的文件或者文件夹封装成对象。File f1 = new File("a.txt");//后面的文件名可以是变量,实现扩展File f2 = new File("c:\\abc","b.txt");File d = new File("c:\\abc");File f3 = new File(d,"c.txt");sop("f1:"+f1);sop("f2:"+f2);sop("f3:"+f3);//使用跨平台的路径分隔符File f4 = new File("c:"+File.separator+"abc"+File.separator+"zzz"+File.separator+"a.txt");}public static void sop(Object obj){System.out.println(obj);}}

?

?

import java.io.*;class  FileDemo2{public static void main(String[] args) {File dir = new File("c:\\");//获取文件夹下的所有的文件对象File[] files = dir.listFiles();for(File f : files){System.out.println(f.getName()+"::"+f.length());//获取文件对象的信息并打印}}//文件过滤操作public static void listDemo_2(){File dir = new File("d:\\java1223\\day18");//因为是接口类型,并且只有一个方法,所以使用内部类String[] arr = dir.list(new FilenameFilter(){//对文件是类型进行判断。public boolean accept(File dir,String name){/*if(name.endsWith(".bmp"))return true;elsereturn false;对这种形式进行优化以后是下面:*/return name.endsWith(".bmp");}});System.out.println("len:"+arr.length);for(String name : arr){System.out.println(name);}}//得到文件对象是信息public static void listDemo(){File f = new File("c:\\abc.txt");//返回目录下的所有文件或文件夹到字符串数组中。String[] names = f.list();//调用list方法的file对象必须是封装了一个目录。该目录还必须存在。for(String name : names){System.out.println(name);}}//得到所在系统的盘符public static void listRootsDemo(){File[] files = File.listRoots();for(File f : files){System.out.println(f);}}}

?

?

?

练习

将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。

建立一个java文件列表文件。

?

思路:

1,对指定的目录进行递归。

2,获取递归过程所以的java文件的路径。

3,将这些路径存储到集合中。

4,将集合中的数据写入到一个文件中。

?

import java.io.*;import java.util.*;class  JavaFileList{public static void main(String[] args) throws IOException{File dir = new File("d:\\java1223");List<File> list = new ArrayList<File>();fileToList(dir,list);//得到文件信息存入集合//System.out.println(list.size());File file = new File(dir,"javalist.txt");writeToFile(list,file.toString());//将信息存入文件中}//使用递归的方式获取到文件夹中所有的java文件public static void fileToList(File dir,List<File> list){File[] files = dir.listFiles();for(File file : files){if(file.isDirectory())fileToList(file,list);//判断是目录就进行递归else{if(file.getName().endsWith(".java"))list.add(file);//将得到的java文件信息存入到集合中}}}public static void writeToFile(List<File> list,String javaListFile)throws IOException{BufferedWriter bufw =  null;try{bufw = new BufferedWriter(new FileWriter(javaListFile));//创建流对象for(File f : list)//对集合进行遍历{String path = f.getAbsolutePath();//得到集合中file对象的绝对路径信息bufw.write(path);//将得到的路径信息写入到流中bufw.newLine();bufw.flush();}}catch (IOException e){throw e;}finally{try{if(bufw!=null)bufw.close();}catch (IOException e){throw e;}}}}

?

?

?

?

----------------------?android培训、java培训、期待与您交流! ----------------------

读书人网 >编程

热点推荐