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端,进入一个死循环以便一直监听某端口是 ...
随机推荐
- vim美化基本配置
在home目录中创建一个 .vimrc文件 vim ~/.vimrc 文件基本配置 " 设置当文件被改动时自动载入 set autoread " quickfix模式 autocm ...
- redis 基本原理及安装
一:什么是redis? Redis 是一个开源的,高性能的,基于键值对的缓存与存储系统.通过提供多种键值数据类型来适应不同场景下的缓存与存储需求. 二:redis数据库有什么优点? Redis数据库中 ...
- 厚着脸皮求领导写了一篇java小白进阶大牛之路!!!
缘起&应朋友之邀 2019年已经过去两个月了,应朋友之邀,写写自己的个人经历,与其说经历还不如是自我的总结与反思.2012年2月份只身一人拖着行李箱来到北京库巴科技有限公司实习,那时候库巴处在 ...
- C#中指针使用总结(转载)
C#为了类型安全,默认并不支持指针.但是也并不是说C#不支持指针,我们可以使用unsafe关键词,开启不安全代码(unsafe code)开发模式.在不安全模式下,我们可以直接操作内存,这样就可以使用 ...
- python线程join方法
转载:http://www.cnblogs.com/cnkai/p/7504980.html Python多线程与多进程中join()方法的效果是相同的. 下面仅以多线程为例: 首先需要明确几个概念: ...
- centos django Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
os环境 centos python2.7.5 django1.10.8 class AdminAutoRunTask(View): """ 自动跑外放任务 " ...
- Linux下C语言生成可执行文件的过程
在当前目录下创建一个C源文件并打开: touch test.c gedit test.c直接编译: gcc test.c -o test 分步骤编译: 1) 预处理 gcc -E test.c ...
- 「洛谷3292」「BZOJ4568」「SCOI2016」幸运数字【倍增LCA+线性基+合并】
[bzoj数据下载地址]不要谢我 先讲一下窝是怎么错的... \(MLE\)是因为数组开小了.. 看到异或和最大,那么就会想到用线性基. 如果不会线性基的可以参考一下我的学习笔记:「线性基」学习笔记a ...
- Linux-负载均衡LVS
LVS负载均衡 负载均衡集群是Load Balance 集群的缩写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有Nginx.LVS.Haproxy,商业的硬件负载均衡设备有F5.Netscal ...
- java 11 标准Java异步HTTP客户端
这是 Java 9 开始引入的一个处理 HTTP 请求的的 HTTP Client API,该 API 支持同步和异步,而在 Java 11 中已经为正式可用状态,你可以在 java.net 包中找到 ...