Javase基础学习笔记之IO流(1)


----------------------          IO流                       ---------------------

dsfsdf

IO:处理设备数据

输出:核心到外围设备

流就是一种系统资源,使用完后一定要释放

FileMethod.java

package cn.itcast.file;

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

public class FileMethod {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		File file3 =new File("c:\\abc\\3m.txt");
		File filet =new File("demo.txt");
		File file=new File("d:\\38.txt");
	//	file.createNewFile();
	//	Method1(file);
		//method2(file);
		System.out.println(file.getFreeSpace());
	}

	private static void method2(File file) throws IOException {
		//create
	/*	boolean b=file.createNewFile();//文件存在,则不创建返回false,不存在才会创建并返回true
		System.out.println(b);*/
		//delete
		//删除文件夹时必须保证该文件病人没有内容。从最里往外删
	//	boolean b =file.delete();
	
		System.out.println("ext"+file.exists());
		
		//创建文件夹
		boolean bt =file.mkdirs();
		//System.out.println(bt);
		System.out.println("file"+file.isFile());
		System.out.println("dir"+file.isDirectory());
	}

	private static void Method1(File file) {
		//获取绝对路径
		String path =file.getAbsolutePath();
		//获取file对象的封装路径,封装的是什么 获取的就是什么
		String path1=file.getPath();
		//获取文件最后一次修改时间,
		long time=file.lastModified();
		Date date =new Date(time);
		DateFormat dateformat =DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
		String str_date=dateformat.format(date);
		//文件是否隐藏
		boolean b=file.isHidden();
		System.out.println(b);
		System.out.println(str_date);
		System.out.println(time);
		System.out.println(path);
		System.out.println(path1);
	}

}


File dir = new File("c:\\");
		// 当前目录下的所有文件和文件夹名称包含隐藏文件
		// 只获取名称
		/*
		 * String[] names =dir.list(); System.out.println(names);
		 * if(names!=null) for(String name : names){ System.out.println(name); }
		 */
		File[] files = dir.listFiles();
		for (File file : files) {
			System.out.println(file);
			System.out.print(file.length());
		}
----------------------          过滤器                       ---------------------

FileTest.java

package cn.itcast.file;

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

import cn.itcast.filter.FilterByContain;
import cn.itcast.filter.FilterBySuffic;

public class FileTest {
	public static void main(String[] args) {
		//list(FilenameFilter filter)
		File dir =new File("c:\\");
		FilenameFilter filter =new FilterBySuffic(".java"); //多态
		filter =new FilterByContain("Test");
		//传过滤器
		String[] names =dir.list(filter);
		for(String name:names){
			
			System.out.println(name);
		}

	}
}

FilterBySuffix

package cn.itcast.filter;

import java.io.File;
import java.io.FilenameFilter;
/*
 * 根据文件后缀名过滤
 */
public class FilterBySuffic implements FilenameFilter {
	private String suffix;
	
	

	public FilterBySuffic(String suffix) {
		super();
		this.suffix = suffix;
	}



	/*
	 * (non-Javadoc)
	 * name 被遍历目录中的文件夹或者文件名称
	 * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
	 */
	@Override
	public boolean accept(File dir, String name) {
		
		return name.endsWith(suffix);
	}

}
FilterByContain
package cn.itcast.filter;

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

public class FilterByContain implements FilenameFilter {
	private String content;

	public FilterByContain(String content) {
		super();
		this.content = content;
	}

	@Override
	public boolean accept(File dir, String name) {

		return name.contains(content);
	}

}
----------------------          获取指定目录内容   

GetAllFile

package cn.itcast.file.demo;

import java.io.File;

public class GetAllFile {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*
		 * 获取指定目录下的内容
		 * 递归:函数自身调用自身,
		 * 功能被重复使用,但是每次参与运算数据不同时,可以考虑
		 * 
		 */
		File dir =new File("F:\\h\\record");
		getAllFiles(dir);
	}

	private static void getAllFiles(File dir) {
		System.out.println("dir:"+dir);
		// TODO Auto-generated method stub
		//获取目录文件对象数组
		File[] files =dir.listFiles();
		//数组遍历
		for(File f : files){
			if(f.isDirectory()){
				getAllFiles(f);
			}else
			System.out.println("file:"+f);
		}
		
		
	}

}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值