基础文件流总结

File

1、File的特点

File可以访问:

1)、访问其表示的文件或目录的属性

2)、创建删除文件或空目录

3)、访问一个目录中的子项

File不可以:访问文件数据

2、File的方法:

File file=new File();

1)、file表示的文件或目录的名字file.getName()

2)、获取当前file表示的文件大小(字节)file.length()

3)、文件或目录是否可写file.canWrite()是否可读file.canread()

4)、判断该位置下是否已经存在这个文件或目录file.exists()

5)、创建文件file.createNewFile()

6)、当前file表示的文件删除file.delete()

File dir=new File();

7)、创建目录(前提是该目录所在的目录必须存在)dir.mkdir()

8)、创建目录(多级,会将不存在的父目录一同创建出来)dir.mkdirs()

9)、删除目录dir.delete()

File dir=new File(".");
if(dir.isDirectory()){//判断当前dir表示的是否为一个目录
    File[] subs=dir.listFiles();
    System.out.println("当前目录下共"+subs.length+"个子项");
    for(int i=0;i<subs,length;i++){
        File sub=sub[i];
        System.out.println(sub.getName());
    }
}

10)、判断是否为一个目录dir.isDirectory()

11)、获取当前目录的子项dir.listFiles()

过滤

FileFilter filter=new FileFilter()

字符串包括什么字符.indexOf("内容")>=0或者.comtains("内容")

开头.startsWith()

二、lambda表达式(箭头函数)

更简洁的语法创建匿名内部类

实现一个接口【只有一个抽象方法】时,才能去替换原始的匿名内部类形式

FileFilter filter=new FileFilter(){
    public boolean accept(File file){
        String name=file.getName();
        boolean c=name.contains("t");
        return c;
}
};

变形一
FileFilter filter=new FileFilter(){
    public boolean accept(File file){
        return file.getName.contains("t");
}
};
变形二
FileFilter filter1=(File file)->{
        return file.getName.contains("t");

};
变形三:参数类型省略
FileFilter filter2=(file)->{
        return file.getName.contains("t");

};
变形四:方法体中只有一行代码(代码有return再删除{也要把return删除})
FileFilter filter3=(file)->file.getName.contains("t");
变形五:只有一个参数
FileFilter filter4=file->file.getName.contains("t");

总结:lambda表达式在接口中只有一个抽象方法时使用,一般注解FunctionlInterface

三、输入输出流

1、抽象类,不可以被实例化,所有字节输入输出流的超类,定义基本的读写字节的相关方法

输入负责读取。从外部进入到程序的方向InputStream

输出负责写出,从程序到外界的方向OutputStream

2、文件流:链接文件与程序的管道。负责对文件进行读写的流

FileInputStream定义读取字节的相关方法,FileOutputStream定义读取字节的相关方法

方法:关闭流.close()

写文件.write()

读取文件.read()

获取当前系统的毫秒值.currentTimeMillis()

字符串按照指定的字符集转换为一组字节.getBytes()

四、低级流和高级流(节点流和处理流也叫过滤流)

1、节点流:实际连接程序与另一端的流,负责实际读写字节数据的流读写一定是建立在节点流上的。

处理流:不能独立存在,必须连接在其他流上,目的是当数据经过当前流时简化我们的读写。

文件流就是典型的低级流,是实际链接程序与文件的流,负责读写文件数据。

缓冲流是一对高级流:BufferedInputStream和BufferedOutputStream

2、对象序列化:将一个java对象按照其结构转换为一组字节的过程

对象反序列化:将一个字节还原成一个java对象的过程

3、高级流

ObjectOutputStream对象输出流

ObjectInputStream对象输入流

写出对象.writeObject()

读出对象.readObject()

4、转换流(在字符与字节之间负责转换)

转换输出流OutputStreamReader

转换输入流InputStreamReader

5、向文本写入文本数据

PrintWriter

BufferedWriter

 

//1、创建文件流(低级流,字节流):向文件中写入字节数据
FileOutputStream fos =new FileOutputStream("pw.txt");
//2、创建转换流(高级流,字符流):衔接字节与字符流,负责将写出的字符抓换位字节
OutputStreamWriter osw=new OutputStreamWriter(fos);
//3、创建缓冲字符流(高级流,字符流):块写文本数据加速
BufferedWriter bw=new BufferedWriter(osw);
//4、创建PrintWriter(高级流,字符流):按行写出字符串,自动行刷新
PrintWriter pw=new PrintWriter(bw);
pw.println("哈哈");
pw.close();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值