day16

File

File常用的三个构造方法:
public File(File parent,String child) ==>根据文件 以及子的路径来构建一个新的文件对象
public File(String pathname) ==> 根据路径来构建新的文件对象
public File(String parent,String child) 根据父的路径 和子的路径构建一个文件对象
4.常规的方法
创建文件
public boolean createNewFile()
创建文件夹
public boolean mkdir()
创建文件夹以及父目录
public boolean mkdirs()
删除文件
public boolean delete()

判断性:
public boolean exists() ==>判断文件是否存在
public boolean isFile() ==>判断是否是一个文件
public boolean isDirectory() ==>判断是否是一个文件夹
public boolean isHidden() ==>判断是否是隐藏文件

得到性:
public String getAbsolutePath() ==>返回文件或者文件的绝对路径
public String getName() ==> 返回的是文件或者文件夹名称
public String getParent() ==> 返回的是文件或者文件夹的父目录
public String getPath() ==> 返回就是文件的构造方式中的地址
重命名与剪切
public boolean renameTo(File dest)
重命名:在同一个目录下调用这个方法就是重命名
剪切: 不在同一个目录下调用这个方法就是剪切

public String[] list() ==>返回是当前目录下所有的文件
public File[] listFiles(FileFilter filter) ==>使用过滤器来返回有效的文件
FileFilter 文件过滤器 ==> 用于对文件进行过滤(把不必要的文件进行过滤)
public long length() ==>返回的是文件的长度(文件所占的字节数)
在这里插入图片描述
在这里插入图片描述

public class Shiyan2 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        String path=input.next();
        File f=new File(path);
        boolean g=true;
        while (g){
            if(f.exists()){
                if (f.isDirectory()){
                    File[] file=f.listFiles(new FileFilter() {
                        @Override
                        public boolean accept(File pathname) {
                            if(pathname.getName().endsWith("jpg")&&pathname.length()>20*1024){
                                return true;
                            }
                            return false;
                        }

                    });
                    g=false;
                    System.out.println(Arrays.toString(file));
                }else {
                    System.out.println("重述");
                    path=input.next();
                    f=new File(path);
                }

            }else {
                System.out.println("重述");
                path=input.next();
                f=new File(path);
            }
        }
    }
}

IO

** 输入流 InputStream
输出流 OutputStream**

OutputStream 输出流
提供一些方法(子类是可以使用者些方法)
public void close()throws IOException 关闭流资源
public void flush()throws IOException 刷新缓冲区 也就是将缓冲区的数据 刷新到磁盘中
public void write(byte[] b)throws IOException 将字节数组写入到磁盘中
public void write(byte[] b,int off,int len) 指定字节数组的长度进行写入
public abstract void write(int b)throws IOException 表示写一个字节到磁盘中

FileOutputStream(OutputStream子类)
3.构造方法
public FileOutputStream(File file)throws FileNotFoundException
// 将数据通过FileOutputStream 写入到文件
public FileOutputStream(String name)throws FileNotFoundException
将数据通过FileOutputStream写入到指定的文件字符串路径中
public FileOutputStream(File file,boolean append)
将数据通过FileOutputStream 写入到文件
参数 append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
4.构造方法做了三件事
1.实例化对象 FileOutputStream
3.在执行路劲下创建一个空的文件
3.会将FileOutputStream对象执行这个文件

7.使用 public void write(byte[] b) 向文件写入多个字节
8.FileOutputStream 是可以在文件中写入字符串 只需要将字符串转换为字节数组

InputStream(输入流)
常用的方法(子类都可以使用)
public int available()throws IOException 输入流读取(或跳过)的估计字节数 输入流末尾,则返回 0
public void close()throws IOException 关闭流资源
public abstract int read()throws IOException 一个一个字节进行读取 末尾范湖-1
public int read(byte[] b)throws IOException 读取多个字节放入到数组中
返回值是读取有效的字节数
public int read(byte[] b,int off,int len)读取指定长度的字节放入到数组

6.FileInputStream(InputStream的)
1.用于读取文件中的数据
2.FileInputStream 用于读取诸如图像数据之类的原始字节流。
要读取字符流,请考虑使用 FileReader。
3.构造方法
常用的构造方法
public FileInputStream(File file)throws FileNotFoundException
使用FileInputStream 读取文件的内容
public FileInputStream(String name)throwsFileNotFoundException
使用FileInputStream 读取指定文件路径的内容

    构造方法做两件事
    1.实例化 FileInputStream对象
    2.FileInputStream 执向需要读取的文件

案例
1.需求:将A文件中的内容复制到B文件中
2.分析:使用输入流 读取A文件中的内容
使用输出流 将A文件中读取的内容写入的B文件
文件的copy
在这里插入图片描述

高效流

1.两个高效流 BufferInputStream BufferOutputStream
这两个流读写的原理 就是是使用缓冲区来进行的读写(把字节读取到指定的数组一样),只是这两个流内部封装一个数组 这个数组的长度8192字节
BufferInputStream(InputStream i)
BufferOutputStream(outputStream i)
在这里插入图片描述
close() 与flush()区别
1.close() 底层调用了flush() 方法
2.close() 表示关闭流对象资源 关闭这个流对象资源之后 是不能使用
3.flush() ==>将缓冲区的数据刷新到磁盘中(字符) 流对象没有关闭 还是可以使用的

对象流

类似高效流
2.ObjectInputStream
构造方法
public ObjectInputStream(InputStream in) ==>需要传递一个文件流对象
常用的方法
public final Object readObject() 用于来读取对象
5.ObjectOutputStream
构造方法:
public ObjectOutputStream(OutputStream out)
常用写的方法
public final void writeObject(Object obj)
6.对一个对象进行读写操作
在这里插入图片描述
7.写一个集合
读数据
在这里插入图片描述
写:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值