Java#32(异常, File)

news2024/11/17 21:22:38

目录

一.异常

异常: 代表程序出现问题

二.File

1.File的三种构造方法

2.File的常见的成员方法


一.异常

异常: 代表程序出现问题

图解:

从Java文件------>字节码文件的过程就是编译(在这期间的异常就是编译时异常)

从字节码文件------->运行结果的过程就是运行(在这期间的异常就是运行时异常)

异常的处理方式:

1.JVM默认处理异常的方式:

(1)把异常的名称, 异常原因及异常出现的位置等信息输出在了控制台上

(2)程序停止执行, 异常下面的代码不会在执行了

2.自己处理(捕获异常)

格式: 

try{

     可能出现异常的代码;

}catch(异常类名 变量名){

        异常处理的代码;

}

注意:

(1)只有出现catch里面的异常, 才会执行catch里面的代码

(2)如果try里面出现多个异常,那么需要写一样多的catch与之对应(如果异常之间存在父子关系, 那么父类要写在下面)(在JDK7之后,catch( )中可以同时捕获多个异常,中间用 | 隔开,表示要是遇到这两个异常采取同一种处理方案)

(3)如果try中遇到了问题,try下面的代码就不会执行了,它会创建异常的对象,然后就执行catch语句

目的: 当代码出现异常时, 可以让程序继续往下执行

代码示范: 

public class Test2 {
    public static void main(String[] args) {
        int[] arr ={1,2,3,4,5,6};

        try{
            //可能出现异常的代码
            System.out.println(arr[8]);
        }catch (ArrayIndexOutOfBoundsException e){
            //如果出现了ArrayIndexOutOfBoundsException异常,如何处理
            System.out.println("索引越界");
        }

        System.out.println("是否能运行到这");
    }
}

结果展示: 

异常的常用方法:

public void printStackTrace( );

把异常的错误信息红色字体输出在控制台(仅仅是打印信息, 不会停止程序的运行)

代码示范: 

public class Test2 {
    public static void main(String[] args) {
        int[] arr ={1,2,3,4,5,6};

        try {
            System.out.println(arr[8]);
        } catch (ArrayIndexOutOfBoundsException e) {
            e.printStackTrace();
        }

        System.out.println("是否能运行到这");
    }
}

结果展示: 

二.File

File对象就表示一个路径, 可以是文件的路径, 也可以是文件夹的路径

这个路径可以是存在的, 也允许是不存在的

1.File的三种构造方法

            方法名称                                                                      说明
public File(string pathname)                            根据文件路径创建文件对象
public File(string parent,string child)          根据父路径名字符串和子路径名字符串创建文件对象
public File(File parent,string child)  根据父路径对应文件对象和子路径名字符串创建文件对象
代码示范: 

import java.io.File;

public class Test3 {
    public static void main(String[] args) {
        //1.根据字符串表示的路径, 变成File对象
        //  \: 转义字符
        //  \\: 表示\
        String str = "C:\\Users\\怪\\Desktop\\a.txt";
        File f1 = new File(str);
        System.out.println(f1);
        //父级路径: C:\Users\怪\Desktop
        //子级路径: a.txt
        //2.父级路径和子级路径拼接
        String parent = "C:\\Users\\怪\\Desktop";
        String child = "a.txt";
        //(1)第一种: 自动拼接(推荐)
        //File f2 = new File(parent,child);
        //(2)第二种 手动拼接
        File f3 = new File(parent+"\\"+child);
        System.out.println(f3);
        //3.把一个File表示的路径和String表示路径进行拼接
        File f4 = new File("C:\\Users\\怪\\Desktop");
        String child1 = "a.txt";
        File f5 = new File(f4,child1);
        System.out.println(f5);
    }
}

结果展示:

2.File的常见的成员方法

(1)判断, 获取类型的成员方法
                          方法名称                                              说明
public boolean isDirectory()             判断此路径名表示的File是否为文件夹
public boolean isFile()                        判断此路径名表示的File是否为文件
public boolean exists()                          判断此路径名表示的File是否存在
public long length()                  返回文件的大小(字节数量)(不能计算文件夹的大小)
public String getAbsolutePath()                    返回文件的绝对路径
public String getPath()                               返回定义文件时使用的路径
public String getName()                                返回文件的名称,带后缀
public long lastModified()                  返回文件的最后修改时间(时间毫秒值)
代码示范:

import java.io.File;

public class FileDemo1 {
    public static void main(String[] args) {
        File f1 = new File("C:\\Users\\怪\\Desktop\\a.txt");
        //1.isDirectory()
        System.out.println(f1.isDirectory());
        //2.isFile()
        System.out.println(f1.isFile());
        //3.exists()
        System.out.println(f1.exists());
        //4.length()  (单位字节)
        long len = f1.length();
        System.out.println(len);
        //5.getAbsoluteFile()
        System.out.println(f1.getAbsoluteFile());
        //6.getPath()
        System.out.println(f1.getPath());
        //7.getName()
        System.out.println(f1.getName());
        //8.lastModified()
        System.out.println(f1.lastModified());

    }
}

结果展示:

(2)创建, 删除类型的成员方法
                           方法名称                                               说明
public boolean createNewFile()                     创建一个新的空的文件
public boolean mkdir()                                           创建单级文件夹
public boolean mkdirs()      创建多级文件夹(既可以创建单级文件夹也可以创建多级文件夹)
public boolean delete()              删除文件、空文件夹(删除直接消失,不会在回收站中)
createNewFile()的使用:

mkdirs()的使用:

delete()删除文件(直接删除)

 delete()删除文件夹(要为空文件夹)

(3)获取并遍历

public File[ ] listFiles( )                获取当前该路径下所有内容

代码示范: 

import java.io.File;

public class FileDemo3 {
    public static void main(String[] args) {
        File f1 = new File("C:\\Users\\怪\\Desktop\\abc");
        File[] filelist = f1.listFiles();
        for (File file : filelist) {
            System.out.println(file);
        }
    }
}

结果展示: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/60716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux系统调用与API

系统调用是应用程序与操作系统内核之间的接口,它决定了应用程序是如何与内核打交道的。无论程序是直接进行系统调用,还是通过运行库,最终还是会达到系统调用这个层面。 系统调用介绍 1、什么是系统调用 在现代的操作系统里,程序运…

CEC2015:动态多目标野狗优化算法求解CEC2015(提供完整MATLAB代码,含GD、IGD、HV和SP评价指标)

一、动态多目标优化问题简介 现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题称为动态多目标优化问题(dynamic multi-objective optimization p…

写一个flutter程序—记录

目录 使用外部package 添加一个Stateful widget Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全…

[附源码]Python计算机毕业设计SSM精品旅游项目管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【Pytorch安装】windows下,安装了torch但是import torch失败

【Pytorch安装】windows下,安装了torch但是import torch失败问题原因解决问题 输入 python 进入python环境,输入 import torch 但是显示找不到这个包 输入 pip list 查看之前是否安装成功 但是可以看到包都在 原因 电脑中先前安装了多个 python &am…

Ajax用法总结

目录 Ajax简介 Ajax使用 xhr内部五种状态 Ajax在IE浏览器上存在的缓存问题 如何发送post请求 如何取消Ajax请求 ​编辑 jQuery封装的Ajax如何使用? Ajax简介 Ajax全称为Asynchous Javascript And XML,即异步的JS和XML,通过Ajax可以在…

Linux进程的调度

目录 调度策略与调度类 实时调度策略 普通调度策略 调度类 sched_class有几种实现: 完全公平调度算法 调度队列与调度实体 调度类是如何工作的? 调度策略与调度类 在Linux里面,进程大概可以分成两种。 一种称为实时进程,…

Redis主从复制+哨兵模式

必读 redis的主从复制是单向的,只能有主节点到从节点,主节点以写为主从节点以读为主不能写入数据!因为系统的80%的需求都是读的需求。 redis服务默认自己是主节点,一个主节点由一个或多个从节点,一个从节点只有一个主…

图信号处理论文

图信号处理并且非图神经网络的论文: Donget.al“GraphSignal Processingfor MachineLearning A Review and New Perspectives," ICASSP Tutorial, June 2021. Lorenzoet.al“Adaptiveleast mean squaresestimation ofgraph signals"IEEE Trans. Signal I…

Vue3 学习笔记 —— 破坏式更新、自定义指令 directive

目录 1. 什么叫破坏式更新? 2. Vue3 中的自定义指令 2.1 自定义指令的生命周期 2.1.1 Vue2 Vs Vue3 的自定义指令生命周期 2.1.2 自定义指令的生命周期中,接收的参数 2.2 定义一个自定义指令 2.2.1 在 setup 中定义自定义指令(此处为 …

数据结构 树练习题

目录 判断 选择 判断 1.一棵有124个结点的完全二叉树,其 叶结点个数是确定的。 【答案】正确 【解析】完全二叉树 若设二叉树的深度为h 除第 h 层外 其它各层 1~(h-1) 的结点数都达到最大个数(即1~(h-1)层为一个满二叉树) 第 h 层所有的结点都连续集…

【C++】STL

文章目录回调函数:一、STL的诞生二、STL基本概念三、STL六大组件四、STL中容器,算法,迭代器回调函数: 函数被作为参数传递到另一个函数(主要函数)的那个函数就叫做 回调函数 一、STL的诞生 C的面向对象和…

DHTMLX Diagram JavaScript/HTML5 Pro Library:5.0

Diagram — JavaScript/HTML5 Diagram Library Ω578867473 破解版DHTMLX Diagram comprises a set of interactive HTML5 UI components such as organization charts, flowcharts, decision trees, block diagrams, mind maps, etc. Consisting of nodes and connectors, di…

i.MX 6ULL 驱动开发 二十八:网络设备

一、网络设备的系统框图 MAC:工作在网络模型的数据链路层,通过 RGMII 或 RMII 接口连接 PHY,MAC 控制器中的 MDIO 控制器提供 MDIO 接口,用于访问 PHY 寄存器。 PHY:工作在网络模型的物理层,是 IEEE802.3 …

SVN项目,提交Git保留之前提交记录

📃目录跳转简介:1.创建文件2.命令下载:3.上传到远程git3.1 创建远程git工程3.2 添加一个新的远程 Git 仓库3.3 拉取远程master的数据合并3.3 推送远程git分支简介: 由于之前直接搞的项目是部署在自己搭建的SVN服务器上,平时创建的…

5. JVM调优工具详解及调优实战(这里有我的实战案例预制构件生产管理平台)

1. Jmap,Jstack,Jinfo命令详解 1.1 Jmap 此命令可以用来查看内存信息,实例个数以及占用内存大小 jps 先查看有哪些java程序 jmap -histo 16492 > ./log.txt jmap -heap 16492 查看堆的信息 查看堆年轻代老年代的使用情况 堆内存dum…

Matlab:tftb-0.2时频工具箱安装小记

Matlab:tftb-0.2时频工具箱安装小记一、安装过程记录1、解压缩:2、将解压缩后的文件夹复制到自己的Matlab安装目录工具箱下;3、打开Matlab设置路径:设置路径4、测试是否安装成功:5、小试牛刀叮嘟!这里是小啊…

【ASE+python学习】-批量识别石墨烯团簇结构中的吡啶氮,并删除与其相连的氢

批量识别石墨烯团簇结构中的吡啶氮,并删除与其相连的氢文章背景任务内容程序实现思路实现代码建立标准结构中边缘碳与氢的位置差值标准数据集读入待修改结构,识别氮与氢位置差值是否存在标准数据集代码细节剖析文章背景 在科研工作中,我的工…

STM32系列(HAL库)——串口IAP

前言 IAP(In Application Programming)即在应用编程,IAP 是用户自己的程序在运行过程中对 User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产 品中的固件程序进行更新升级。 设备具备IAP功能…

javaScript学习———变量概述 变量的使用 变量语法扩展 变量命名规范交换 变量案例

博主每篇博文的浪漫主义: 【东京girl秀场上那些甜度爆表的女孩子们。💖】 https://www.bilibili.com/video/BV1pG411F7KT/?share_sourcecopy_web&vd_source385ba0043075be7c24c4aeb4aaa73352 东京girl秀场上那些甜度爆表的女孩子们。💖…