java-IO File类

package edu.fjut.file;

import java.io.File;
import java.io.IOException;

/* 在整个IO包中,唯一表示与文件本身有关的类就是File类
 * 使用File类可以进行创建或删除文件(夹)等操作,但不包括写数据到文件
 */
public class FileOperator {

	public static void main(String[] args) throws IOException {
		
		//在File类中,有一些常量并没有用大写,实际上这是java的历史遗留问题,在早期并没有这种命名规范
		
	   /*file.separator会根据不同操作系统选择相应的路径分隔符,这样java程序就具有可移植性.
	    *  windows 使用"\"(注意要转义)  linux 使用"/
	    *  实例化File类的对象,在d盘创建一个名为file的空文件,后缀名可有可无
	    *  如果写了后缀名,windows就会以一种默认的方式打开
	    */
		
		File file=new File("d:"+File.separator+"file");
		
		if(file.exists()){//判断一个文件是否存在
			file.delete();//删除文件
		}
		else{
			file.createNewFile();//根据给定的路径创建文件,注意抛出异常
		}
		
        /* 从程序的运行结果中可以看出,所有的操作(创建、删除)并不会立马执行.
         * 因为java是通过JVM与底层进行交互的,所以所有的操作都要经过JVM完成,
         * 那么就有可能产生延迟.
         */
	}

}
 
 
package edu.fjut.file;

import java.io.File;

//操作文件夹
public class DirectionOperator {

	public static void main(String[] args) {
		
		File file=new File("d:"+File.separator+"javase");
		file.mkdir();//创建目录
	    /* 列出指定目录的全部文件
		*  1.以字符串数组的形式返回(只是返回文件(夹)的名字):public String[[] list()
		*  2.以File数组的形式返回:public File[] listFiles()
		*/
		String []files1=file.list();
		for(String f:files1){
			System.out.println(f);
		}
		/*输出
			Oracle学习.txt
			Oracle笔记.doc
		          上善若水.txt
		          新建文件夹
		*/
		
		File []files2=file.listFiles();
		for(File f:files2){
			System.out.println(f);
		}
		/*输出      列出了完整的路径,这样对于程序本身来说是很容易操作的
			d:\javase\Oracle学习.txt
			d:\javase\Oracle笔记.doc
			d:\javase\上善若水.txt
			d:\javase\新建文件夹
		*/
	}

}
 
package edu.fjut.file;

import java.io.File;

//给定一个目录,列出此目录的全部文件,包括子文件夹的文件
public class ListDirection {

	public static void main(String[] args) {
		
		//在使用File类指定路径的时候,尽量使用File.separator进行分割
		File file=new File("d:"+File.separator+"javase");
		print(file);
	}
	
	private static void  print(File file){//递归调用
		
		if(null!=file){//判断对象是否为空
			
			if(file.isDirectory()){//是目录
				
				File []files=file.listFiles();//列出全部文件
				
				if(null!=files){//判断此目录能否列出,因为有一些目录不能访问.如果没有判断,可能会抛出NullPointerException
					
					for(File f:files){
						
						print(f);//因为可能存在子目录,所以继续判断						
							
					}
				}
			}
			else{
				System.out.println(file);//不是目录,输出路径
			}
		}
	}
	/* 输出
		d:\javase\Oracle学习.txt
		d:\javase\Oracle笔记.doc
		d:\javase\上善若水.txt
		d:\javase\新建文件夹\demo.html
	*/
}
 

你可能感兴趣的:(IO,File,JavaSE)