java基础学习IO流之File类 十一 -1

IO流
用来处理设备之间的数据传输
java对数据的操作是通过流的方式

JAVA用于操作流的对象都在IO包中


流栈操作数据分为两种字节流和字符流

流向分为输入流输出流。

字节流的抽象基类:
inputstream  和 OutputStream;
字符流的抽象基类:
Reader 和 Writer


File类:

构造:


测试demo:

package io;

import java.io.File;

/**
 * @author Angus
 * File 文件和文件夹的操作
 * 
 * File(String pathname) :根据指定的路径创建File对象
 * File(String parent, String child) 
 * File(File parent, String child)
 * 
 */
public class FileDemo {
	//方式一  一般常用方式一就可以
	File file = new File("d:\\a.txt");
	File file2 = new File("d:\\aaa");
	
	//方式二
	File file3 = new File("d:\\","a.txt");
	File file4 = new File("d:\\","aaa");
	
	//方式三
	File file5 = new File("d:\\");
	File file6 = new File(file5,"aaa");
	
}

常用方法:部分截图:



创建功能:

package io;

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

/**
 * @author Angus
 * File常用方法
 * 	创建:
 * 	  文件:
 * 		createNewFile() 存在不创建,不存在创建
 * 	 文件夹:
 * 		mkdir()  创建此抽象路径名指定的目录。
 * 		mkdirs()  创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
 * 
 * 绝对路径:以盘符开始的路径   写的路径会短一些
 * 相对路径:不以盘符开始的路径。永远使用绝对路径这样路径是不会错的。但是路径会很长。。
 */
public class FileDemo2 {

	public static void main(String[] args) throws IOException {
		//创建文件
		File file = new File("d:\\a.txt");
		System.out.println(file.createNewFile()); //true
		//没有写路径?  这样就在项目路径下   
		File file2 = new File("2.txt");
		System.out.println(file2.createNewFile());//true
		
		//创建目录
		File file3 = new File("aaa");
		System.out.println("mkdir"+file3.mkdir());
		
//		//创建多级目录,要求父目录必须存在
//		File file4 = new File("aaaa\\cccc");
//		System.out.println("mkdir"+file3.mkdir());//false
		//解决
		File file5 = new File("aaa");
		File file6 = new File(file5,"ccc");
		System.out.println(file5.mkdir());
		System.out.println(file6.mkdir());
		
		//优化  mkdirs  不管存在不存在都创建  多级目录一起创建
		File file7 = new File("aaaa\\cccc");
		System.out.println(file7.mkdirs());
		
		//创建文件
		File file8 = new File("c.txt");
		System.out.println(file8.mkdir());//true
	}

}


删除:

package io;

import java.io.File;

/**
 * 
 * @author Angus
 *	删除:
 *		delete()  删除此抽象路径名表示的文件或目录。
 *	注意;java 语言的删除不走回收站,删除不可找回
 */
public class FileDemo3 {

	public static void main(String[] args) {
		//删除文件
		File file = new File("2.txt");
		System.out.println(file.delete());
		
		//删除文件夹  如果目录下有内容不能删除,只能一级一级删除
		File file2 = new File("aaa");
		System.out.println(file2.delete());
	}

}

判断:

package io;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;



/**
 * @author Angus
 *	获取功能:
 *		getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。
 *
 *		getPath()  将此抽象路径名转换为一个路径名字符串。
 *		getName()   返回由此抽象路径名表示的文件或目录的名称。
 *		length()  返回由此抽象路径名表示的文件的长度。
 *		lastModified()  最后一次修改时间
 */
public class FileDemo4 {

	public static void main(String[] args) throws IOException {
		File file = new File("aaa\\ccc\\a.txt");
		System.out.println("getAbsolutePath"+file.getAbsolutePath());//D:\new_workspace\test1\IoString\aaa\ccc\a.txt
		System.out.println("getPath"+file.getPath());//aaa\ccc\a.txt
		System.out.println("getName"+file.getName()); //a.txt
		System.out.println("length"+file.length()); //字节
		System.out.println("lastModified"+file.lastModified()); //1488873726434
		Date d = new Date(file.lastModified());
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println(sdf.format(d));
		
	}

}

获取二:

package io;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;



/**
 * @author Angus
 *	获取功能:
 *		listRoots()  列出可用的文件系统根。也就是盘符
 *		list()  返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
 *		listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
 */
public class FileDemo4 {

	public static void main(String[] args) throws IOException {
//		File file = new File("aaa\\ccc\\a.txt");
		//方式一
		File[] listRoots = File.listRoots();
		for(File root: listRoots){
			System.out.println(root);
		}
		System.out.println("方式一    -----------------");
		//方式二
		File file = new File("d:\\");
		String[] list = file.list();
		for (String string : list) {
			System.out.println(string);//输出目录
		}
		System.out.println("方式二    -----------------");
		//方式三
		File[] listFiles = file.listFiles();
		for (File file2 : listFiles) {
			System.out.println(file2);  //返回的是File对象  对象路径,,那个路径下的
		}
	}
}







过滤器:

package io;

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

/**
 * @author Angus
 *	需求;
 *		获取指定目录下指定后缀的文件名称
 *	A;先获取指定目录下所有文件夹或者文件夹的File数组,然后遍历判断,满足条件的输出
 *	B:直接获取指定目录下满足条件的String数组,遍历
 *
 *	list(FilenameFilter filter)  返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
 */
public class FileDemo4 {

	public static void main(String[] args) throws IOException {
		//创建目录
		File file = new File("d:\\");
		//获取满足的条件
		String[] list = file.list(new FilenameFilter() {
			
			@Override
			public boolean accept(File dir, String name) {
//				System.out.println(dir+"---"+name);
				File file2 = new File(dir, name);
				boolean flag = file2.isFile(); //判断是否文件,输出文件名字
				return flag;
			}
		});
		
		//遍历
		for (String string : list) {
			System.out.println(string);
		}
		
	}
}






最后附上JDK使用文档API 下载












  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值