• 2022-08-09 学习日记(29th day)File类


    目录

    File类

    File的构造方法:

    File的应用方法:

    创建文件:

    删除文件:

    创建文件夹(目录):

    创建一个路径下的某一个文件,且这个路径还不一定存在(封装工具类):


    File类

    在我的理解就是一个工具类,是一个操作文件的类

    在学习IO流之前我们先介绍一下:

    IO流就是对于文件的操作:

    Input:把数据从物理内存加载到运行内存。(读文件)所谓的输入就是读文件
    Output:把数据从运行内存写道物理内存。(写文件)

     计算机的输入输出都是通过二进制完成的。

    我们书写文件的路径:

    正斜杠:左斜杠:撇:/

    反斜杠:右斜杠:捺:\

    在Unix/Linux,路径的分隔采用正斜杠/,

    在windows,中路径分隔采用的都是反斜杠\。

    在File类中,定义了路径分隔符的常量:

    File.separator-----------反斜杠:\

    File.pathSeparator-----分号:;

    在java里,\代表了转义字符:

    \r回车
    \n换行
    \f走纸换页
    \t横向跳格
    \b退格

    File的构造方法:

    File file1 = new File(URI uri);URI转换为抽象路径名来创建新的File实例

    File file2 = new FIle(String parent,String child);从父路径名字符串和子路径名字符串创建新的File实例

    File file3 = new File(File parent,String child);从抽象路径名和子路径名字创建新的File实例。

    实际操作:

    1. File file1 =new File("C:\\summerjava");
    2. System.out.println("file1="+file1);
    3. File file2 = new File("C:\\summerjava","homework0713");
    4. System.out.println("file2="+file2);
    5. File file3 = new File(file1,"homework0713");
    6. System.out.println("file3="+file3);

    File的应用方法:

    创建文件:

    file.createNewFile();

    创建文件的时候会抛异常:

    1. try {
    2. file.createNewFile();
    3. } catch (IOException e) {
    4. e.printStackTrace();
    5. }

    为什么?答:因为怕你没有上一级菜单,所以会抛异常

    删除文件:

     file.delete()

    删除有返回值,返回值为boolean

    删除是没有异常的,如果存在就删除,不存在这个文件就拉到。

    ps:file类删除时时不走回收站的

    创建文件夹(目录):

    file.mkdir();   //只能创建一级目录

    file.mkdirs(); //可以创建多级目录

    创建一个路径下的某一个文件,且这个路径还不一定存在(封装工具类):

    1. import java.io.File;
    2. import java.io.IOException;
    3. public class FileUtil {
    4. /*
    5. 分析:
    6. 1.传入的路径是一个e:\\a\b\c\aaa.txt
    7. 2.传入的路径是一个e:/a/b/c/bbb.txt
    8. */
    9. public static boolean createDirAndFile(String filepath) throws IOException {
    10. File file = null;
    11. if(filepath.contains("/")){
    12. if(filepath.contains("\\")){
    13. throw new RuntimeException("路径不合法");
    14. }else {
    15. // e:\\a\\b\\c\\a.txt
    16. int index = filepath.lastIndexOf("/");
    17. String filename = filepath.substring(index,filepath.length());
    18. filepath = filepath.substring(0, index+ 1);
    19. file = new File(filepath);
    20. file.mkdirs();
    21. // 创建文件
    22. File newFile = new File(filepath,filename);
    23. newFile.createNewFile();
    24. return true;
    25. }
    26. }
    27. if(filepath.contains("\\")){
    28. if(filepath.contains("/")){
    29. throw new RuntimeException("路径不合法");
    30. }else {
    31. // e:\\a\\b\\c\\a.txt
    32. int index = filepath.lastIndexOf("\\");
    33. String filename = filepath.substring(index,filepath.length());
    34. filepath = filepath.substring(0, index+ 1);
    35. file = new File(filepath);
    36. file.mkdirs();
    37. // 创建文件
    38. File newFile = new File(filepath,filename);
    39. newFile.createNewFile();
    40. return true;
    41. }
    42. }
    43. throw new RuntimeException("路径不合法");
    44. }
    45. public static void main(String[] args) {
    46. // String str = "e:\\a\\b\\c\\a.txt";
    47. // System.out.println(str.contains("/"));
    48. try {
    49. createDirAndFile("d");
    50. System.out.println("文件创建成功...");
    51. } catch (IOException e) {
    52. e.printStackTrace();
    53. }
    54. }
    55. }

     

  • 相关阅读:
    JavaScript 之 Vue3 入门到精通+网络商城案例(一篇文章精通系列)【WebStorm版】
    【Eye-tracking】DIDEC: The Dutch Image Description and Eye-tracking Corpus
    maven 依赖版本冲突异常
    刷题笔记day04-链表
    Hive sql中条件写在on和where的区别
    Redis订阅发布
    强烈推荐:2024 年12款 Visual Studio 亲测、好用、优秀的工具,AI插件等
    python工具-base64-zip-json
    Typora 、 Minio and PicGo 图床搭建
    Linux安装Docker完整教程及配置阿里云镜像源
  • 原文地址:https://blog.csdn.net/weixin_49627122/article/details/126253599