异常

异常:就是程序出现了不正常的情况。
异常有两大类:Error和Exception。发生Error异常的情况,Java程序本身是无能为力的,比如说:硬件层面的问题,内存不足等。Exception则是代码中的错误导致的了,这个可以通过修改代码进行处理。
Exception异常有分为编译时异常和运行时异常。
编译期的异常(非RunTimeException):在编译期就必须处理,否则程序不能通过编译,就更不能正常的执行了。
运行期的异常(RunTimeException):在编译期是不处理的,在程序运行时候出现了问题,需要我们回来修改代码。
处理异常的代码形式时try{}catch{}throw xxxException
示例代码:

public class ExceptionDemo
{public static void main(String[] args){}//用try  catch来捕获异常private static void tryCatch(){try{int a=10;int b=0;System.out.println(a/b);}catch (ArithmeticException e){//System.out.println("除数不能为0");System.out.println(e);}}/*编译时异常,当发生编译时异常,编译器会有红色波浪线标示代码,可以用try catch处理,也可以用throw抛出*/private static void bianyiException(){try{String s="2020-10-16";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");System.out.println(sdf.parse(s));}catch (ParseException e){System.out.println(e);}}/*运行时异常,不影响代码的编写,但是运行时会报错,发现报错后应该处理这类异常*/private static void runException(){try{int a=10;int b=0;System.out.println(a/b);}catch (ArithmeticException e){System.out.println(e);}}//用throws来处理异常private static void throwsTest() throws ParseException{String s="2020-10-16";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");System.out.println(sdf.parse(s));}
}

File类

File类是Java中用于操作目录和文件的类,File的使用是需要抛出异常的。
示例代码:

public class FileDemo
{public static void main(String[] args) throws IOException{File f1=new File("F:\\file-test\\test.txt"); //File对象创建方式1,全路径File f2=new File("F:\\file-test","test.txt"); //File对象创建方式2,上级目录+文件或子目录File f3=new File("F:\\file-test"); //创建目录的File对象File f4=new File(f3,"test.txt"); //File对象创建方式3,目录File对象+文件名if (!f3.exists()) //验证f3的目录路径是否存在f3.mkdir(); //创建目录,注意这个方法只能创建根目录下的第一级目录,多级目录用mkdirs()f1.createNewFile(); //使用File对象创建文件,这个方法需要抛出编译时异常f1.delete(); //删除文件f3.delete(); //删除目录,当目录下还有文件或目录时,应该先删除内层的文件或目录f3.isDirectory(); //判断是否是路径f1.isFile(); //判断是否是文件System.out.println(f1.getAbsolutePath()); //获取绝对路径System.out.println(f1.getPath()); //获取相对路径System.out.println(f1.getName()); //获取带后缀的文件名}
}

写文件——FileOutputStream

示例代码:

public class FileOutputStreamDemo
{public static void main(String[] args) throws IOException{//FileOutputStream是写入文件的类,在文件不存在时可以创建文件,但是不能创建目录FileOutputStream write1=new FileOutputStream("F:\\file-test\\write.txt");write1.write(65); //数字是要写入内容的char码write1.write(56);write1.close(); //写完文件需要closeFileOutputStream write2=new FileOutputStream("F:\\file-test\\write.txt");byte[] bys="断水流大师兄".getBytes(); //字符串的getBytes()方法可以把字符串转为字节数组write2.write(bys); //字节数组可以写入文件了 write2.write(bys,0,3)是从第一个字节开始写,写入3个字节write2.close();FileOutputStream write3=new FileOutputStream("F:\\file-test\\write.txt");for(int i=0;i<10;i++) //通过循环的方式可以实现换行写入{write3.write("hello world!".getBytes());write3.write("\n".getBytes());}write3.close();//创建FileOutputStream对象时,设置append参数为true,可以实现追加写入FileOutputStream write4=new FileOutputStream("F:\\file-test\\write.txt",true);for(int i=0;i<10;i++){write4.write("hello Java!".getBytes());write4.write("\n".getBytes());}write4.close();}
}

读文件——FileInputStream

public class FileInputStreamDemo
{public static void main(String[] args) throws IOException{readByChar();readByK();}private static void readByChar() throws IOException //一个字节一个字节的读{FileInputStream read=new FileInputStream("F:\\file-test\\read.txt");//通过循环读取所有的字节int by;while((by=read.read())!=-1) //read()返回读取到的字节的char码,当读不到数据是-1{System.out.println((char)by); //将读到的char码转为字节}read.close(); //读完文件需要close}private static void readByK() throws IOException //按1024字节(K)读取,通常都按K读{FileInputStream read=new FileInputStream("F:\\file-test\\read.txt");byte[] bys=new byte[1024];int len;while ((len=read.read(bys))!=-1){System.out.print(new String(bys,0,len));}read.close();}
}

练习

通过FileInputStream和FileOutputStream结合使用,完成文件的复制

复制txt

public class CopyTxtTest
{private String fromPath;private String copyPath;public CopyTxtTest(){}public CopyTxtTest(String fromPath, String copyPath){this.fromPath = fromPath;this.copyPath = copyPath;}public void copy() throws IOException{if(fromPath != null && copyPath != null){FileInputStream input=new FileInputStream(fromPath);FileOutputStream ouput=new FileOutputStream(copyPath);byte[] bys=new byte[1024];int len;while((len=input.read(bys))!=-1){ouput.write(bys,0,len);}input.close();ouput.close();}else {System.out.println("路径不可为空!");}}
}

复制jpg

public class CopyImgTest
{private String fromPath;private String copyPath;public CopyImgTest(){}public CopyImgTest(String fromPath,String copyPath){this.fromPath=fromPath;this.copyPath=copyPath;}public void copyImg() throws IOException{if(fromPath != null && copyPath != null){FileInputStream input=new FileInputStream(fromPath);FileOutputStream ouput=new FileOutputStream(copyPath);byte[] bys=new byte[1024];int len;while ((len=input.read(bys))!=-1){ouput.write(bys,0,len);}input.close();ouput.close();}else {System.out.println("路径不可为空!");}
}

Java基础(chapter207-chapter225)总结相关推荐

  1. Java基础入门语法和安装

    1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Un ...

  2. Java笔记整理-02.Java基础语法

    1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...

  3. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  4. Java基础概念性的知识总结

    属于个人的所学的知识总结,不是全面的 1.JDK.JRE和JVM三者的区别 01.JDK:(Java Development ToolKit)Java开发工具包,是整个Java的核心.包括了Java的 ...

  5. 我的面试标准:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架!...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:hsm_computer www.cnblogs.com/J ...

  6. 叮!您收到一份超值Java基础入门资料!

    摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...

  7. java重要基础知识点_必看 | 新人必看的Java基础知识点大梳理

    原标题:必看 | 新人必看的Java基础知识点大梳理 各位正在认真苦学Java的准大神,在这烈日炎炎的夏季里,老九君准备给大家带来一个超级大的"冰镇西瓜,"给大家清凉一下,压压惊. ...

  8. Java基础-Date类常用方法介绍

    Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...

  9. [Spring 深度解析]第1章 Java基础

    第1章 ◄Java基础► 在学习Spring之前我们需要对Java基础语法有一定的了解,Java中最重要的两个知识点是注解和反射.注解和反射在Spring框架中应用的最广泛.掌握注解和反射,有助于后面 ...

  10. 清华学长免费分享Java基础核心知识大总结(1)

    自学Java,如果觉得看<Java编程思想>或者<Core Java>等之类的"圣经"觉得内容太多,一下子吃不透的话,不妨看看这本<Java基础核心总 ...

最新文章

  1. 判断直线与线段是否相交,相交则输出交点x轴坐标
  2. nginx如何开启debug日志及相关配置
  3. 究竟什么是Linux内核?我该如何高效学习?​
  4. python winsound_将winsound转换为linux平台?
  5. 门槛低的行业看天赋,门槛高的行业看毅力
  6. 12月第2周业务风控关注 | 公安部:严打自媒体“网络水军”违法犯罪,关闭大V账号1100余个...
  7. c语言指针的应用实验报告6,C语言实验六实验报告——指针.doc
  8. 【PRML 学习笔记】第三章 - 线性回归模型 (Linear Models for Regression)
  9. 华成英-模拟电子技术P11 场效应管及其放大电路 笔记
  10. 风尚云网笔记-vue中echarts引入
  11. php paypal网站对接,php 接入 paypal 支付
  12. 轨道交通检测中心-轨道交通产品可靠性检测机构
  13. Ubuntu下初装QT出现错误cannot find -lGL解决办法
  14. 计算机数据库三级刷题总结
  15. 不定积分、定积分 复习笔记
  16. PS 之AD命令之Get-ADuser!
  17. Java实现 LeetCode 403 青蛙过河
  18. html-webpack-plugin 又出幺蛾子 | 一次解决bug的过程
  19. 2018年计算机专业就业形势,2018电子信息工程专业就业形势和就业方向分析_有途教育...
  20. nodejs 实现二维码生成及图片合成

热门文章

  1. 电脑文件被杀毒软件误删了怎么恢复?
  2. 博客左侧导航栏添加打赏功能(添加微信赞赏码)
  3. 解压ubi文件_IoT(八)ubi文件系统挂载解包
  4. 基于C语言的内存池的设计与实现
  5. 参与百度世界2012 赢百度APP推广大礼包
  6. 币圈IDO与ICO/IPO的区别和联系
  7. 二十三种设计模式之工厂模式(含Java工厂模式的实现)
  8. MongoDB安装Python操作MongoDB
  9. 冲刺大厂每日算法面试题,动态规划21天——第十二天
  10. 闰年c语言循环计算方法,C语言计算有多少闰年(答案原创)