java IO流(File类)

/*
 * File类:用来将文件或者文件夹封装成对象,文件和目录路径名的抽象表示形式。
 * 方便对文件与文件夹属性操作。
 * File类可以作为参数传递给流的构造函数。
 * separator关键字:代表任何平台下的目录分隔符。
 * File类的常用方法:
 * 1.创建:
 * 在指定为位置创建文件,如果该文件已经存在,返回false,和输入流不同。
 * 输出流对象一建立文件,文件存在会覆盖。
 * boolean createNewFile():根据File对象创建新的文件。
 * boolean kmdir():创建文件夹,只能创建一级文件夹
 * boolean kmdirs():创建多级文件夹。
 * 2.删除:
 * boolean delete();如果文件不存在则删除失败,返回false
 * boolean deleteOnExit();//退出时删除指定文件
 * 3.判断:
 * boolean canExecute(): //判断此文件是否可以执行。
  exists()://判断文件是否存在。 
isDirectory():判断是否是目录。
isFile():判断是否是文件。
isHidden():判断是否是隐藏文件。
 * 4.获取:
 * 返回由此抽象路径名表示的文件或目录的名称。 
 * String getName() 
 *       返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。 
  String getParent()
    将此抽象路径名转换为一个路径名字符串。  
  String getPath() 
  返回此抽象路径名的绝对路径名形式。 
  File getAbsoluteFile()
     返回此抽象路径名表示的文件最后一次被修改的时间。  
  long lastModified() 
     返回由此抽象路径名表示的文件的长度。 
  long length() 
 */
import java.io.*;
public class FileDemo {
public static void main(String args[]) throws IOException
{
//consMethod();
//method();
//method1();
   //method2();
method3();
}
public static void method3() throws IOException
{
File f=new File("c:\\file.txt");
File f1=new File("c:\\file222.txt");
sop(f.createNewFile());
//获取相对路径file.txt
sop(f.getPath());
//获取绝对路径E:\java实例工程\IO流2(File类)\file.txt
sop(f.getAbsoluteFile());
//获取相对路径,返回null,绝对路径返回上一层目录。
sop(f.getParent());
sop(f.lastModified());
sop(f.length());
//修改文件名
sop(f.renameTo(f1));
}
public static void method2() throws IOException
{
/*
* 重点:判断文件对象师是否是文件挥着目录时
* 必须判断文件对象封装的内容是否存在。
* 通过exists判断。
*/
File f=new File("c:\\file1.txt");
//File dir=new File("c\\file2txt");
//dir.mkdir();
//f.createNewFile();
f.mkdir();
sop(f.isDirectory());
sop(f.isFile());
sop(f.isAbsolute());
}
public static void method1() throws IOException
{
File f=new File("c:\\abc");
File dir=new File("c:\\farker\\abv\\kkk");
dir.mkdirs();
f.createNewFile();
sop(f.exists());
//sop(f.canExecute());
}
//将文件对象创建成新文件
public static void method() throws IOException
{
File dir=new File("c:\\abc");
File f=new File("c:\\abc\\file.txt");
sop(dir.mkdir());
sop(f.createNewFile());
//dir.delete();
f.delete();
}

//创建File对象以及separator关键字的使用
public static void consMethod()
{
//创建File对象,将a.txt封装成对象。
File f1=new File("c:\\a.txt");
//
File f2=new File("c:\\ab","b.txt");
//
File d=new File("c:\\abcd");
File f3=new File(d,"c.txt");
sop("f1:"+f1);
sop("f2:"+f2);
sop("f3:"+f3);
//separator代表任意平台下的分隔符
File f4= new File("c:"+File.separator+"abv"+File.separator+"qwe.txt");
sop("f4:"+f4);
}

//输出函数
public static <T> void sop(T t)
{
System.out.println(t);
}

}


import java.io.File;
import java.io.FilenameFilter;




public class FileDemo2 {
public static void main(String[] args) {
//listRootsDemo();
//list();
//listdemo();
//listdemo1();
File dir =new File("c:\\新建文件夹");
listDemo2(dir);
}
//列出指定目录下所有的内容。
public static void listDemo2(File dir)
{
sop(dir);
File d[]=dir.listFiles();

for(File f:d)
{
if(f.isDirectory())
{
listDemo2(f);
}
else sop(f);
}
}
//获取File对象,并且可以获取对象的属性。
public static void listdemo1()
{
File f=new File("c:\\");
File[] arr=f.listFiles();
for(File f1:arr)
{
sop(f1.getName()+"::"+f1.length());
}
}
//列出目录下所有的文件以及文件夹,包含隐藏文件,File对象必须是个目录,而且目录必须存在。
public static void listdemo()
{
File dir=new File("c:\\");
String[] arr=dir.list(new FilenameFilter() {

@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt"); 
}
});
for(String s:arr)
{
sop(s);
}
}
public static void list()
{
File f=new File("c:\\");
String[] name=f.list();
for(String s:name)
sop(s);
}
//列出系统里所有的盘符。
public static void listRootsDemo()
{
File[] files =File.listRoots();
for(File f:files)
{
sop(f);
}
}
public static <T> void sop(T t)
{
System.out.println(t);
}
}


/*
 * 删除一个带内容的目录。
 * 删除原理:在window中,删除目录从里面往外删除,需要用到递归。
 * 
 */
import java.io.*;
public class FileDemo3 {
public static void main(String[] args) {
File dir =new File("c:\\新建文件夹");
removeDirDemo(dir);
}
public static void removeDirDemo(File dir)
{
File fi[]=dir.listFiles();
for(File d:fi )
{
if(!d.isHidden()&&d.isDirectory())
{
removeDirDemo(d);
}
else sop(d+":::"+d.delete());
}
sop(dir+":::"+dir.delete());
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}


import java.io.*;
import java.util.*;




public class FileDemo4 {
public static void main(String[] args) throws IOException {
File dir=new File("E:\\java实例工程");
List<File> list=new ArrayList<File>();
fileToList(dir,list);
writeToFile( list);
System.out.println(list.size());
}
public static void fileToList(File dir,List<File> list)
{
File file[]=dir.listFiles();
for(File f:file)
{
if(f.isDirectory())
{
fileToList(f,list);
}
else
{
if(f.getName().endsWith(".java"))
list.add(f);
}
}
}
public static void writeToFile(List<File> list) throws IOException 
{
BufferedWriter fw=null;
try{
fw=new BufferedWriter(new FileWriter("c:\\demo.txt"));
for(File f:list)
{
//将list里的File对象写入fw中
fw.append(f.getAbsolutePath());
//写入一个行分隔符
fw.newLine();
//刷新该流的缓冲
fw.flush();
}
}
catch (IOException e)
{
throw e;
}
finally{
try{
if(fw!=null)
fw.close();
}
catch(Exception e){
throw e;
}
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章