学习JAVA的第十九天(基础)

目录

File

成员方法(判断和获取)

成员方法(创建和删除)

成员方法(获取并遍历)

IO流

FileOutputStream

FileInputStream

文件拷贝


前言:学习JAVA的第十八天(基础)-CSDN博客

File

  • File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径
  • 这个路径可以是存在的,也允许是不存在的

方法:

方法名 说明
File(String pathname) 根据文件路径创建文件对象
File(String parent,String child) 根据父路径名字符串和子路径名字符串创建文件对象
File(File parent,String chlid) 根据父路径对应文件对象和子路径名字符串创建文件对象

测试类

java 复制代码
  public static void main(String[] args) {
        //根据文件路径创建文件对象
        String str = "D:\\FileDemo\\a.txt";
        File f1 = new File(str);
        System.out.println(f1);//D:\FileDemo\a.txt

        //父级路径:D:\FileDemo
        //子级路径:a.txt
        String parent = "D:\\FileDemo";
        String child = "a.txt";
        File f2 = new File(parent,child);
        System.out.println(f2);//D:\FileDemo\a.txt

        //把File表示的路径和String表示的进行拼接
        File parent2 = new File("D:\\FileDemo");
        String child2 = "a.txt";
        File f3 = new File(parent2,child2);
        System.out.println(f3);//D:\FileDemo\a.txt

    }

成员方法(判断和获取)

方法名称 说明
boolean isDirectory() 判断此路径名表示的File是否为文件夹
boolean isFile() 判断此路径名表示的File是否为文件
boolean exists() 判断此路径名表示的File是否存在
long length() 返回文件的大小(单位字节)
String getAbsolutePath() 返回文件的绝对路径
String getPath() 返回定义文件使用的路径
String getName() 返回文件的名称,带后缀
long lastModified() 返回文件最后的修改时间(时间毫秒值)

成员方法(创建和删除)

方法名 说明
boolean createNewFile() 创建一个新的空的文件
boolean mkdir() 创建单级文件夹
boolean mkdirs() 创建多级文件夹
boolean delete() 删除文件、空文件夹

成员方法(获取并遍历)

|-------------------------------------------|----------------------|
| 方法名 | 说明 |
| static File[] listRoots() | 列出可用的文件系统根 |
| String[] list() | 获取当前路径下的所有内容 |
| String[] list(FilenameFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |
| File[] listFiles() | 获取当前路径下的所有内容 |
| File[] listFiles(FileFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |
| File[] listFiles(FilenameFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |

IO流

存储和读取数据的解决方案

IO流分类:

IO流体系:

FileOutputStream

操作本地文件的字节输出流,可以把程序中的数据写到本地文件中。

测试类

java 复制代码
public static void main(String[] args) throws IOException {
        //创建对象
        FileOutputStream fos = new FileOutputStream("student\\a.txt");

        //书写数据
        fos.write(97);

        //释放资源
        fos.close();

    }
java 复制代码
public static void main(String[] args) throws IOException {
        //创建对象 续写
        FileOutputStream fos = new FileOutputStream("student\\a.txt",true);

        //换行符
        String str = "\r\n";
        fos.write(str.getBytes());
        
        //书写数据
        fos.write(98);

        //释放资源
        fos.close();

    }

FileInputStream

操作本地文件的字节输入流,可以把本地文件中的数据读取到程序中来。

测试类

java 复制代码
public static void main(String[] args) throws IOException {
        //创建对象
        FileInputStream fis = new FileInputStream("student\\a.txt");

        //循环读出数据
        int b = 1;
        while((b=fis.read() )!= -1){
            System.out.print((char) b);//abcd
        }

        //释放资源
        fis.close();
    }

文件拷贝

小文件拷贝,边读边写(字节)。

测试类

java 复制代码
 public static void main(String[] args) throws IOException {
        //创建对象
        FileInputStream fis = new FileInputStream(" D:\\java\\copy\\preview.jpg");
        FileOutputStream fos = new FileOutputStream("student\\copy.jpg");

        //边读边写
        int b ;
        while((b=fis.read()) != -1){
            fos.write(b);
        }

        //释放资源
        fos.close();
        fis.close();
    }

大文件拷贝,一次读写多个字节数据

测试类

java 复制代码
  public static void main(String[] args) throws IOException {
        //创建对象
        FileInputStream fis = new FileInputStream(" D:\\java\\java.mp4");
        FileOutputStream fos = new FileOutputStream("student\\copy.mp4");

        //边读边写
       int len;
       //一次读3M
       byte[] bytes = new byte[1024 * 1024 * 3 ];
       while((len = fis.read(bytes)) != -1){
           //读多少写多少
           fos.write(bytes,0,len);
       }

        //释放资源
        fos.close();
        fis.close();
    }
相关推荐
饮长安千年月1 小时前
Linksys WRT54G路由器溢出漏洞分析–运行环境修复
网络·物联网·学习·安全·机器学习
红花与香菇2____1 小时前
【学习笔记】Cadence电子设计全流程(二)原理图库的创建与设计(上)
笔记·嵌入式硬件·学习·pcb设计·cadence·pcb工艺
一天八小时4 小时前
Docker学习进阶
学习·docker·容器
前端没钱4 小时前
前端需要学习 Docker 吗?
前端·学习·docker
拥有一颗学徒的心4 小时前
鸿蒙第三方库MMKV源码学习笔记
笔记·学习·性能优化·harmonyos
车端域控测试工程师4 小时前
【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑰】
经验分享·学习·汽车·测试用例·capl
车端域控测试工程师4 小时前
【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑪】
经验分享·学习·汽车·测试用例·capl
charlie1145141917 小时前
(萌新入门)如何从起步阶段开始学习STM32 —— 0.碎碎念
c语言·stm32·单片机·嵌入式硬件·学习·教程
网安Ruler9 小时前
泷羽Sec-黑客基础之html(超文本标记语言)
前端·学习·网络安全·html
啥也不会的菜鸟·10 小时前
Redis7——基础篇(五)
redis·学习·缓存