JAVA进阶9
间歇性混吃等死,持续性踌躇满志系列-------------第9天
1、使用throw语句抛出异常
在通常情况下,程序发生错误时系统会自动抛出异常,而有时希望程序自动抛出异常,可以使用throw语句来实现。
package code0320;
public class demo01 {
//定义常量(圆周率)
final static double PI = 3.14;
//根据半径计算圆周率面积的方法
public void computeArea(double r) throws Exception {
if (r <= 20.0) {
//使用throw语句抛出异常
throw new Exception("程序异常:\n 半径为:" + r + "\n 半径不能小于20.");
} else {
//计算圆的面积
double circleArea = PI * r * r;
System.out.println("半径是" + r + "的面积是:" + circleArea);
}
}
public static void main(String[] args) {
//创建对象
demo01 ex = new demo01();
try {
//调用方法
ex.computeArea(14);
} catch (Exception e) {
//输出异常信息
System.out.println(e.getMessage());
}
}
}
运行结果图


2、捕获单个异常
Java中捕获异常是通过try...catch...finally语句来完成的。其中try语句块是必须的,catch和finally语句块可以选择一个或者两个。try语句块是用来放置可能出现问题的语句,catch语句块用来放置异常发生后执行的代码。finally语句块用来放置无论是否发生异常都需要执行的代码。
package code0320;
public class demo01 {
public static void main(String[] args) {
//定义try语句块
try {
System.out.println("进入try语句块");
//得到一个空的class对象
Class<?> clazz = Class.forName("");
System.out.println("离开try语句块");
}catch(ClassNotFoundException e){
System.out.println("进入catch语句块");
e.printStackTrace();
System.out.println("离开catch语句块");
}finally {
System.out.println("进入finally语句块");
}
}
}
运行结果图

3、文件的创建与删除
可以使用File类创建一个文件对象,通常使用以下3种构造方法来创建文件对象。
①File(String pathname)
该构造方法通过将给定路径名字符串转换为抽象路径名来创建一个新的File实例。语法格式如下:
new File(String pathname)
pathname:是指路径名称(包含文件名)
FIle file = new File("D:/1.txt)
②File(String parent,String child)
该构造方法根据定义的父路径和子路径字符串(包含文件名)创建一个新的File对象。语法格式如下:
new File(String parent,String child)
parent:父路径字符串
child:子路径字符串
③File(File f,String child)
该构造方法根据parent抽象路径名和child路径名字符串创建一个新的File实例。语法格式如下:
new File(File f,String child)
f:父路径对象
child:子路径字符串
File file = new File("D:/MYWORD","word.txt");
package code0320;
import java.io.File;
public class demo01 {
public static void main(String[] args) {
//创建文件对象
File file = new File("D:/myword","test.txt");
//如果该文件存在
if (file.exists()){
//将文件删除
file.delete();
//输出的提示信息
System.out.println("文件已删除");
}else{
//如果文件不存在
try{
//try语句块捕捉可能出现的异常
file.createNewFile();//创建改文件
//输出的提示信息
System.out.println("文件已创建");
}catch (Exception e){ //catch处理该异常
//输出异常信息
e.printStackTrace();
}
}
}
}
运行结果图


4、获取文件信息

package code0320;
import java.io.File;
public class demo01 {
public static void main(String[] args) {
//创建文件对象
File file = new File("D:/myword","test.txt");
//判断该文件是否存在
if (file.exists()){
String name = file.getName();
long length = file.length();
System.out.println("文件名称:"+name+"==="+"文件长度是:"+length);
}else{
System.out.println("文件不存在");
}
}
}
运行结果图

5、文件的输入/输出流
package code0320; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; public class demo01 {
public static void main(String[] args) {
//创建文件对象
File file = new File("D:/myword","test.txt");
//捕捉异常
try {
//创建FileOutputStream对象
FileOutputStream out = new FileOutputStream(file);
//创建byte型数组
byte buy[] = "后天科技 Java部".getBytes();
//将数组信息写入到文件中
out.write(buy);
//将流关闭
out.close();
}catch (Exception e){
//输出异常信息
e.printStackTrace();
}
try{
//创建FileInputStream类对象
FileInputStream in = new FileInputStream(file);
//创建byte数组
byte byt[] = new byte[2048];
//从文件中读取信息
int len = in.read(byt);
//将文件中的信息输出
System.out.println("文件中的信息是:"+new String(byt,0,len));
//关闭流
in.close();
}catch (Exception e){
//输出异常信息
e.printStackTrace();
}
}
}
运行结果图

JAVA进阶9的更多相关文章
- Java 进阶 hello world! - 中级程序员之路
Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...
- Java线程间通信方式剖析——Java进阶(四)
原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...
- Java进阶(三)多线程开发关键技术
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...
- 当我们说线程安全时,到底在说什么——Java进阶系列(二)
原创文章,同步发自作者个人博客,转载请以超链接形式在文章开头处注明出处http://www.jasongj.com/java/thread_safe/ 多线程编程中的三个核心概念 原子性 这一点,跟数 ...
- Java进阶03 IO基础
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/11/3000905.html 作者:Vamei 出处:http://www.cnblogs.com ...
- Java进阶01 String类
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 作者:Vamei 出处:http://www.cnblogs.com ...
- 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)
本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...
- Java进阶(七)正确理解Thread Local的原理与适用场景
原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...
- Java进阶(四十七)Socket通信
Java进阶(四十七)Socket通信 今天讲解一个 Hello Word 级别的 Java Socket 通信的例子.具体通讯过程如下: 先启动Server端,进入一个死循环以便一直监听某端口是 ...
随机推荐
- centos7下kubernetes(16。kubernetes-滚动更新)
滚动更新:一次只更新一小部分副本,成功后,在更新更多的副本,最终完成所有副本的更新. 滚动更新的最大好处是零停机,整个更新过程始终有副本在运行,从而保证了业余的连续性 下面部署三个副本的应用,出事镜像 ...
- [LeetCode] 3. 无重复字符的最长子串
题目链接:(https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/) 题目描述: 给定一个字符 ...
- 通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值
package com.Summer_0426.cn; /** * @author Summer * 通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值 * */ public ...
- Java Lucene入门
1.lucene版本:7.2.1 pom文件: <?xml version="1.0" encoding="UTF-8"?> <project ...
- Django create和save方法
Django的模型(Model)的本质是类,并不是一个具体的对象(Object).当你设计好模型后,你就可以对Model进行实例化从而创建一个一个具体的对象.Django对于创建对象提供了2种不同的s ...
- AI佳作解读系列(二)——目标检测AI算法集杂谈:R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3
1 引言 深度学习目前已经应用到了各个领域,应用场景大体分为三类:物体识别,目标检测,自然语言处理.本文着重与分析目标检测领域的深度学习方法,对其中的经典模型框架进行深入分析. 目标检测可以理解为是物 ...
- Shell命令-文件及目录操作之pwd、rm
文件及目录操作 - pwd.rm 1.pwd:显示当前所在位置信息 pwd命令的功能说明 pwd命令用于显示当前工作目录的绝对路径,以便在各个目录间来回切换. pwd命令的语法格式 pwd [OPTI ...
- Shell命令-文件及目录操作之file、md5sum
文件及目录操作 - file.md5sum 1. file:显示文件的类型 file命令的功能说明 用于辨识文件类型.通过 file 指令,我们得以辨识该文件的类型. file命令的语法格式 file ...
- ABP中模块初始化过程(二)
在上一篇介绍在StartUp类中的ConfigureService()中的AddAbp方法后我们再来重点说一说在Configure()方法中的UserAbp()方法,还是和前面的一样我们来通过代码来进 ...
- 这才是你想要的 Python 可视化神器
Plotly Express 是一个新的高级 Python 可视化库:它是 Plotly.py 的高级封装,它为复杂的图表提供了一个简单的语法. 受 Seaborn 和 ggplot2 的启发,它专门 ...