java33:IO 2

package day33;
/**
 * 递归调用,删除文件
 */
import java.io.File;

public class FileDemo07 {
	public static void main(String[] args) {
		File file = new File("a");
		deleteFile(file);
	}
	public static void deleteFile(File file){
		if(file.isDirectory()){
			File[] subs = file.listFiles();
			for(File sub:subs){
				deleteFile(sub);//递归调用
			}
		}
		file.delete();//不管如何 都是删除
	}
}
package day33;

import java.io.File;
import java.io.FileFilter;

/**
 * 
 *获取目录下的部分子项
 *给定一个过滤条件,返回当前目录下满足条件的子例
 *过滤条件使用FileFilter类定义(接口,文件过滤器)
 */
public class FileDemo01 {
	public static void main(String[] args){
		/**
		 *需求:获取文件文件
		 *1定义一个FileFilter 并定义过滤条件
		 *2使用listFiles方法并将过滤器传入并返回符合条件的子项
		 *
		 */
		//使用匿名类的方式创建过滤器匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写

		FileFilter filter = new FileFilter(){
			public boolean accept(File file){
				/**
				 * 文本文件应该是名字以.txt结尾
				 */
				return file.getName().endsWith(".txt");	
			}
		};
		
		/**
		 * 调用File的重载方法listFiles(FileFilter filter)
		 * 将当前目录中符合filer要求的子项返回
		 */
		
		File file = new File(".");
		if(file.isDirectory()){
			File[] subsFiles  = file.listFiles(filter);
			for(File sub:subsFiles){
				System.out.println(sub.getName());
			}
		}
		
		
	}
}



RandomAccessFile    用于读写文件内容的类


java 中文件模型 

    数据在硬盘中保存的形式byte by byte

    读写文件实际上就是读写字节

    创建RandomAccessFile

    RandomAccessFile(File file,String mode)

    mode : rw 读写 ; r只读

package day33;

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

/**
 * 
 *读写文件内容
 *
 */
public class FileDemo02 {
	public static void main(String[] args){
		RandomAccessFile test = null;
		try{
			File file = new File("test.txt");
			if(!file.exists()){
				file.createNewFile();
			}
			test = new RandomAccessFile(file,"rw");
			test.write(1);//该方法写出1个字节,写的是data的低8位2进制的数据
			test.write('a');
			
			int max = Integer.MAX_VALUE;
			test.write(max>>>24);
			test.write(max>>>16);
			test.write(max>>>8);
			test.write(max);
			/**
			 * 连续写4个字节,将int值写入文件
			 */
			test.writeInt(max);//
			
			/**
			 * 写一个字符串
			 */
			String str = "wo can do it";
			byte[] data = str.getBytes();
			
			
			
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			try {
				if(test != null){//防止空指针异常
					test.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值