java.io.File的使用。
IO原理及流的分类。
文件流:FileInputStream、FileOutputStream、FileReader、FileWriter
缓存流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
转换流:InputStreamReader、OuputStreamReader
标准输入/输出流
打印流
数据流
对象流:涉及序列化和反序列化ObjectInputStream、ObjectOutputStream
随机存取文件流:RandomAcessFile
java.io.File类:文件和目录路径名的抽象表示形式,与平台无关。
File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
File对象可以作为参数传递给构造函数。
File类常用构造方法:
public File(String pathname)。以pathname为路径创建File对象,可以是绝对路径,也可以是相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
public File(String parent,String child);。以parent为父路径,child为子路径创建File对象。
File的静态属性String sperator存储了当前系统的路径分隔符,在Unix中,此字段为"/",在windows中为"\\"。
访问文件名:
getName()
getPath()
getAbsoluFile()
getAbosoluPath()
getParent()
renameTo(File newName)
文件检测:
exists()
canWrite()
canRead()
isFile()
isDirectory()
获取常规文件信息:
lastModify()
length()
文件操作相关:
createNewFile()
delete()
目录操作相关:
mkDir()
list()
listFiles()
packageanno;importjava.io.File;public classTest1 {public static voidmain(String[] args) {
File f= new File("F:\\test.txt");
System.out.println(f.getName());//获取new File时的路径
System.out.println(f.getPath());//获取文件的绝对路径
System.out.println(f.getAbsolutePath());//用绝对路径包起来的File对象
System.out.println(f.getAbsoluteFile());//当前文件的父级目录
System.out.println(f.getParent());
f.renameTo(new File("F:\\test2.txt"));
File f2= new File("F:\\test2.txt");
System.out.println(f2.exists());
System.out.println(f2.isFile());
System.out.println(f2.isDirectory());//返回的是字节数
System.out.println(f2.length());
File f3= new File("F:\\test3.txt");if(!f3.exists()) {try{//创建文件
f3.createNewFile();
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("创建完毕");
}
}//删除文件
f3.delete();
File f4= new File("F:\\test4\\name");//f.mkDir();创建单层目录//创建多层目录
if(!f4.exists()) {
f4.mkdirs();
}
File f5= new File("F:\\test4");//返回的是字符串集合,包括文件和目录
String[] l1 =f5.list();for(String l:l1){
System.out.println(l);
}//返回的是个File集合,包括目录和文件
File[] l2 =f5.listFiles();for(File l:l2){
System.out.println(l);
}
}
}
递归判断某个文件夹下的文件是文件夹还是文件。
packageanno;importjava.io.File;public classTest1 {public static voidmain(String[] args) {
File f= new File("F:\\test\\");
obtainFiles(f);
}public static voidobtainFiles(File f) {if(f.isFile()) {
System.out.println(f.getAbsolutePath()+"是文件");
}else{
System.out.println(f.getAbsolutePath()+"是文件夹");
File[] fs= f.listFiles();//获取当前目录下的文件夹或文件
if(fs!=null && fs.length>0) {for(File ff:fs) {
obtainFiles(ff);
}
}
}
}
}
输出:
F:\test是文件夹
F:\test\file1是文件夹
F:\test\file2是文件夹
F:\test\file3是文件夹
F:\test\file4是文件夹
F:\test\test1.txt是文件
F:\test\test2.txt是文件
F:\test\test3.txt是文件
F:\test\test4.txt是文件