Java学习_Day20

文件
概念:File类是Java.io包下代表与平台无关的文件和目录
应用:File类能新建、删除、重命名文件和目录等。(没有办法获得文件里面的内容 )
构造器:
new File(String pathName);(创建的文件可以不存在,但是文件的上一级目录必须存在)
eg: D:\workspace\atguigu\wh0422\a.txt
绝对路径:从盘符开始的路径
相对路径:(含义仅限于java代码中)
./ 代表当前项目 可以省略
…/ 代表当前项目的上一级
new File(String parent,String child);
(父级路径,子级名称)
eg: D:\workspace\atguiguwh0422,a.txt
new File(File parent,String child);
eg:父级对象,子级名称

		方法:
			-public String getName()  返回由此File表示的文件或目录的名称;
			-public long length()          返回由此File表示的文件的长度字节数。
			-public String getPath()     将此File转换为路径名称字符串
			-public String getParent()  获得父级路径
			-public String getAbsolutePath()  返回此File的绝对路径的名字(绝对路径是本身,相对路径会自动补齐)

			-public boolean exists()			此File表示的文件或目录是否实际存在(true存在)
			-public boolean isDirectory()  此File表示的是否为目录
			-public boolean isFile() 				此File表示是否为文件
			-public isAbsolute()					判断File对象对应的文件或目录是否为绝对路径(true为是)
			*public boolean canRead()      	判断File对象对应的文件或目录是否可读
			-public boolean canWrite()     判断File对象对应的文件或目录是否可写
			-public boolean canHidden()  判断File对象对应的文件或目录是否隐藏

			-public boolean createNewFile()  当且仅当具有该名称的文化尚不存在的时候,创建一个新的空文件(文件可以不存在,但是父级路径必须存在)
			-public boolean delete() 				删除由此File表示的文件或目录。只能删除文件或空目录
			-public boolean mkdir()				创建由此File表示的目录(一个/一级)
			-public boolean mkdirs()				创建由此File表示的目录,包括任何-pu何必需但不存在的父目录(多级目录)
			
			-public String[] list()                    返回一个String数组,表示该File目录中所有子类文件或目录的名称(一级)
			-public  File[]   listFile()			返回一个File数组,表示该File目录中的所有的子文件或目录。(对象)

练习:递归
删除非空目录!

/**
 * 删除文件下所有东西
 */
public class Test2 {
    public static void main(String[] args) {
//        String str=;
        File file = new File("D:\\java");
        dels(file);
    }
    public static void dels(File file){
        //1.遍历目录
        File[] list = file.listFiles();
        for (File s: list) {
            //2.删除目录
            if (s.isFile()){
                s.delete();
            }else {
                dels(s);
            }
        }
        file.delete();
    }

}

**IO**
		功能:操作文件内容
		分类:①根据数据的流向分为--->输入流----->输出流
					I : input  输入流 读
					     外界(磁盘,网络。。)----》程序
					O  output  输出流  写
							程序--》外界
					:②根据数据的类型  --->字节流----->字符流
							 字节流:处理单位是字节
            			    字符流:处理单位是字符
					 ③ 根据IO流的角色不同分为:**节点流**和**处理流**。
           			     节点流:原始流
              			  处理流:在节点流的基础上进行了处理
			-
		节点流:
					4大顶极父类(抽象类)
						字节输入流:
								InputStream
										文件字节输入流:FileInputStream
						字节输出流
								OutputStream
										文件字节输出流:FileOutputStream
						字符输入流:
								Reader
										文件字符输入流:FileReader
						字符输出流
									Writer
											文件字符输出流:FieWriter
				
				
						InputStream-->FileInputStream
			                    构造器:
			                        new FileInputStream(File file);
			                        new FileInputStream(String pathName);
			                    方法:
			                        int read();执行一次读取一个字节,通过int型表示,读到没有数据返回-1
			                        int read(byte[] b);执行一次读取n个字节,n个字节存储在b中,返回的是读取的字节数
			                                数组的长度和文件的剩余字节数,哪个小就读取多少个字节,读到没有数据返回-1
			                        int read(byte[] b,int offset,int len)
			                                计划读取len个字节,将数据存储在数组中,从数组的offset位置开始存
			                                返回的是实际读取字节数,读到没有数据返回-1
			                        close();关闭资源
			-
						OutputStream  -->   FileOutputStream
		                    构造器:
		                        new FileOutputStream(File file); 文件可以不存在,但是路径必须存在
		                        new FileOutputStream(File file,boolean append); 文件可以不存在,但是路径必须存在
		                        new FileOutputStream(String pathName); 文件可以不存在,但是路径必须存在
		                        new FileOutputStream(String pathName,boolean append); 文件可以不存在,但是路径必须存在
		                    方法:
		                        write(int b) 执行一次写入一个字节
		                        write(byte[] b)  执行一次将b中所有字节写入
		                        write(byte[] b,int off,int len)  执行一次将b中off开始len这个字节写入
		                        close();
		
		                 2.2.3  Reader   -->   FileReader
		                    构造器:
		                        new FileReader(File file)
		                        new FileReader(String pathName)
		                    方法:
		                        int read(); 执行一次读取一个字符,返回值是字符的int型表示,读到末尾依然返回-1
		                        int read(char[] c);读取n个字符,存储在c中,返回读取的字符数,读到末尾依然返回-1
		                        int read(char[] c,int off,int len)  计划读取len个字符,存储从c的off位置开始存,读到末尾依然返回-1
		                 2.2.4  Writer   -->   FileWriter
		                    构造器:
		                        new FileWriter(File file);
		                        new FileWriter(String pathName);
		                        new FileWriter(String pathName,boolean append);
		                        new FileWriter(File file,boolean append);
		                    方法:
		                        write(int c)
		                        write(char[] c)
		                        write(char[] c,int off,int len)
		                        write(string str)
		                        write(string str,int off,int len)
		
		                        out.flush();  刷新的
		                        close()
		                字符流如果没有关闭资源,则写入失败!因为没有刷新
		                    write-->将内容写到了缓存内-->刷新(将缓存中的内容落盘)
		                 close先刷新,在释放资源!
		
		                 flush和close的区别:
		                    flush--只是刷新,资源时不释放的,所以流对象可以正常使用
		                    close--先刷新在关闭资源,导致流对象就不能再使用了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值