认识JavaIO——File类

学习JavaIO流,不得不提的就是File类,与文件本身有关的类,而我们学习的就是File类里的方法以及常量。

(1)创建一个新的文件 createNewFile()

提醒:使用这个方法得抛出异常或者是try...catch来处理

package com.dengdi.file;

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

public class FileDemo01 {
	public static void main(String[] args) {
		File file=new File("E:\\test.txt");//给定路径
		try {
			file.createNewFile();//创建新文件
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
这里 得介绍File类中的常量pathSeparator和separator,pathSeparator是表示路径的分隔符(windows中是";"),separator也是表示路径的分隔符(windows中是"\")。而我们在实际开发中最好使用常量来表示分隔符,来达到可移植性的目的。

package com.dengdi.file;

import java.io.File;
import java.io.IOException;
//使用File.separator方法创建文件
public class FileDemo02 {
	public static void main(String[] args) {
		String path="E:"+File.separator+"test01.txt";
		File file=new File(path);
		try {
			file.createNewFile();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
(2)删除一个文件 delet()以及判断文件是否存在  exists()

package com.dengdi.file;

import java.io.File;

public class FileDemo03 {
	public static void main(String[] args) {
		File file=new File("E:"+File.separator+"test.txt");
		if(file.exists()){	//判断文件是否存在
			file.delete();	//删除文件
			System.out.println("已经删除文件");
		}else{
			System.out.println("找不到文件");
		}
		
	}
}
在程序执行完毕之后,文件不会立刻删除或者创建,会有些延迟,因为所有操作都需要通过JVM完成所造成。

综合创建和删除文件的操作

package com.dengdi.file;

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

public class FileDemo04 {
	public static void main(String[] args) {
		File file=new File("E:"+File.separator+"test.txt");
		if(file.exists()){
			System.out.println("文件存在,删除文件");
			file.delete();
		}else{
			System.out.println("文件不存在,创建文件");
			try {
				file.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

(3)创建一个文件夹 mkdir()
package com.dengdi.file;

import java.io.File;

public class FileDemo05 {
	public static void main(String[] args) {
		File file=new File("E:"+File.separator+"pratice");
		boolean flag=file.mkdir();//创建文件夹
		System.out.println("创建文件夹是否成功:"+flag);
	}
}
(4)列出指定目录的全部文件

public String[] list()

public File[] listFiles()

package com.dengdi.file;

import java.io.File;

public class FileDemo06 {
	public static void main(String[] args) {
		File file=new File("E:"+File.separator);
		String[] strs=file.list();//列出给定目录的内容,返回全部名称
		for(String str:strs){
			System.out.println(str);
		}
		File[] files=file.listFiles();
		for(File f:files){
			System.out.println(f);//列出给定目录的内容,返回file对象数组
		}
	}
}
(5)判断一个给定的路径是否为目录   isDiretory()

package com.dengdi.file;

import java.io.File;

public class FileDemo07 {
	public static void main(String[] args) {
		File file=new File("E:"+File.separator+"vnc");
		if(file.isDirectory()){
			System.out.println("E:"+File.separator+"vnc:"+"是目录");
		}else{
			System.out.println("E:"+File.separator+"vnc:"+"不是目录");
		}
	}
}
综合练习

package com.dengdi.file;
/**
 * 采用递归的调用形式不断地判断传来的是否是目录
 * 如果是目录,则继续列出子目录
 * 如果不是,就输出
 */
import java.io.File;

public class FileDemo08 {
	public static void main(String[] args) {
		File newFile = new File("E:" + File.separator+"vnc");
		print(newFile);
	}

	public static void print(File file) {	//递归调用此方法
		if (file.exists()) {		//判断是否存在
			if (file.isDirectory()) {	//判断是否是文件夹
				File[] files = file.listFiles();		//列出文件		
				for (File f : files) {	//循环遍历
					print(f);	
				}
			}else{
				System.out.println(file);
			}
		}
	}
}







你可能感兴趣的:(认识JavaIO——File类)