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端,进入一个死循环以便一直监听某端口是 ...
随机推荐
- Loj #2494. 「AHOI / HNOI2018」寻宝游戏
Loj #2494. 「AHOI / HNOI2018」寻宝游戏 题目描述 某大学每年都会有一次 Mystery Hunt 的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得 ...
- Vuex初级入门及简单案例
1.为什么要使用Vuex? (1)方便所有组件共享信息,方便不同组件共享信息. (2)某个组件需要修改状态和需求. 2.状态有哪些? (1)组件内部定义的data状态(通过组件内部修改) (2)组 ...
- Navicat Premium 12.0.18安装与激活
因为要学习测试,postgresql , 没弄过所以用这个软件... https://www.jianshu.com/p/42a33b0dda9c
- UOJ129 NOI2015 寿司晚宴 数论、状压DP
传送门 数论题\(n \leq 500\)肯定是什么暴力算法-- 注意到每一个数\(> \sqrt{n}\)的因子最多只有一个,这意味着\(> \sqrt{n}\)的因子之间是独立的,而只 ...
- cookie跨域共享
domain和path属性,domain就是当前域,默认为请求的地址,如网址为www.jb51.net/test/test.aspx,那么domain默认为www.jb51.net,path默认就是当 ...
- JS 设计模式三 -- 策略模式
策略模式 概念 定义一系列算法,把它们一个个封装起来. 将算法的使用与算法的实现分离开来 实现 // 加权映射关系 var levelMap = { S: 10, A: 8, B: 6, C: 4 } ...
- AtCoder Beginner Contest 122 D - We Like AGC(DP)
题目链接 思路自西瓜and大佬博客:https://www.cnblogs.com/henry-1202/p/10590327.html#_label3 数据范围小 可直接dp f[i][j][a][ ...
- 清北学堂part2
今天的内容分为两部分,能听懂的和听不懂的... 整一整当前阶段(oi)非常重要的知识点,扩展欧几里得, 其他的不是不重要,只是代码实现效果不很好 代码: #include<bits/stdc++ ...
- ☆ [HNOI2012] 永无乡 「平衡树启发式合并」
题目类型:平衡树启发式合并 传送门:>Here< 题意:节点可以连边(不能断边),询问任意两个节点的连通性与一个连通块中排名第\(k\)的节点 解题思路 如果不需要询问排名,那么并查集即可 ...
- LOJ #2719. 「NOI2018」冒泡排序(组合数 + 树状数组)
题意 给你一个长为 \(n\) 的排列 \(p\) ,问你有多少个等长的排列满足 字典序比 \(p\) 大 : 它进行冒泡排序所需要交换的次数可以取到下界,也就是令第 \(i\) 个数为 \(a_i\ ...