一:File1.1File:文件和目录(文件夹)路径名的抽象表示形式。1.2File的构造方法:File(String pathname):把一个路径名称封装成File对象File(String parent, String child):把一个父路径和一个子路径封装成一个File对象File(File parent, String child):把一个父路径File对象和一个子路径封装成一个File对象1.3创建功能:A:创建文件public booleancreateNewFile():如果文件不存在,就创建。否则,不创建。需求:D盘下造一个文件a.txtB:创建目录public boolean mkdir():如果目录不存在,就创建。否则,不创建。需求:D盘下造一个文件夹testpublic booleanmkdirs():如果目录不存在,就创建。否则,不创建。即时父目录不存在,也可以连父目录一起创建。需求:D盘下造一个文件夹(D:/aaa/bbb/ccc)需求:D盘下造一个文件夹("D:\\ddd\\eee\\f.txt");
package com.edu_01;import java.io.File;
import java.io.IOException;/**1.1File:文件和目录(文件夹)路径名的抽象表示形式。1.2File的构造方法:File(String pathname):把一个路径名称封装成File对象File(String parent, String child):把一个父路径和一个子路径封装成一个File对象File(File parent, String child):把一个父路径File对象和一个子路径封装成一个File对象**/
public class FileDemo {publicstatic void main(String[] args) throws IOException {//File(Stringpathname):把一个路径名称封装成File对象//Filefile = new File("D://a.txt");//System.out.println(file.createNewFile());//当文件不存在的时候,创建文件,如果文件存在,不创建System.out.println("------------");//File(Stringparent, String child):把一个父路径和一个子路径封装成一个File对象//Filefile = new File("D://test", "a.txt");//java.io.IOException:系统找不到指定的路径,//创建文件的时候一定要保证路径存在//System.out.println(file.createNewFile());System.out.println("-----------------");//File(Fileparent, String child):把一个父路径File对象和一个子路径封装成一个File对象Filefile = new File("D://test");Filefile2 = new File(file, "a.txt");System.out.println(file2.createNewFile());}}注意事项:A:你要造什么东西,就应该用对应的方法。1.4删除功能:public boolean delete():既可以删除文件,又可以删除目录。路径问题:A:绝对路径     就是以盘符开始的路径(d:\\test\\aaa\\b.txt)B:相对路径     就是不以盘符开始的路径(a.txt)一般都是相对应当前的项目而言的。注意事项:A:Java程序的删除不走回收站。B:如果目录内还有内容就不能删除。1.5判断功能public boolean isDirectory():是否是目录public boolean isFile():是否是文件public boolean exists():是否存在public boolean canRead():是否可读public boolean canWrite():是否可写public boolean isHidden():是否隐藏
package com.edu_02;import java.io.File;
import java.io.IOException;/***    1.5判断功能public boolean isDirectory():是否是目录public boolean isFile():是否是文件public boolean exists():是否存在public boolean canRead():是否可读public boolean canWrite():是否可写public boolean isHidden():是否隐藏*/
public class FileDemo3 {publicstatic void main(String[] args) throws IOException {//在D://a.txtFilefile = new File("D://a.txt");//System.out.println(file.createNewFile());System.out.println("是否是目录:"+file.isDirectory());System.out.println("是否是文件:"+file.isFile());System.out.println("是否存在:"+file.exists());System.out.println("是否可读:"+file.canRead());System.out.println("是否可写:"+file.canWrite());System.out.println("是否隐藏:"+file.isHidden());}}1.6获取功能public String getAbsolutePath():获取绝对路径public String getPath():获取相对路径public String getName():获取名称二:字节流及字节高效流
2.1 I/O流的分类* IO流分类:*             流向:*                      输入流*                      输出流*             数据类型:*                      字节流*                               字节输入流*                               字节输出流*                      字符流*                               字符输入流*                               字符输出流**             注意:一般我们在讨论IO的分类时,默认是按照数据类型分的。** 字节流:*             字节输入流              InputStream(抽象类)*             字节输出流              OutputStream(抽象类)* 字符流:*             字符输入流              Reader*             字符输出流              Writer** 学习习惯:*             字节流*             字符流*2.2* 需求:请用字节流往一个文本文件中写一句话:"helloworld"。* 分析:*             首先要知道是字节流*             写数据我们就应该知道是字节输出流*             所以最终选择了OutputStream*             而OutputStream是抽象类,所以我们应该找其子类*             文件这个单词是File,所以我们就大胆的猜测下:FileOutputStream存在否。** 我们如何往一个文件写数据呢?* 或者说就是字节输出流的操作步骤是什么呢?* A:创建字节输出流对象* B:调用写数据的方法* C:释放资源
package cokm.edu_01;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;/***  2.2* 需求:请用字节流往一个文本文件中写一句话:"helloworld"。* 分析:*             首先要知道是字节流*             写数据我们就应该知道是字节输出流*             所以最终选择了OutputStream*             而OutputStream是抽象类,所以我们应该找其子类*             文件这个单词是File,所以我们就大胆的猜测下:FileOutputStream存在否。** 我们如何往一个文件写数据呢?* 或者说就是字节输出流的操作步骤是什么呢?* A:创建字节输出流对象* B:调用写数据的方法* C:释放资源**/
public class OutputStreamDemo {publicstatic void main(String[] args) throws IOException {/*** 怎么使用文件输出流往文件中途写数据?* 1.创建文件输出流对象* 2.调用输出流对象的方法给文件中写数据* 3.释放资源*///publicFileOutputStream(String name)//publicFileOutputStream(File file)//创建文件输出流对象FileOutputStreamfos = new FileOutputStream("a.txt");//publicFileOutputStream(File file)//Filefile = new File("a.txt");//FileOutputStreamfos = new FileOutputStream(file);/*** FileOutputStream fos = newFileOutputStream("a.txt");* 做了那些事情?* 1.创建fos对象指向文件a.txt* 2.创建一个文件a.txt*///调用输出流的写数据的方法给文件中写数据//publicvoid write(byte[] b)byte[]byf = "helloworld".getBytes();fos.write(byf);//释放资源,关流操作fos.close();//关流之后,我们还能继续往文件中写数据码//这样是不行的。。//fos.write("java".getBytes());//java.io.IOException:Stream Closed}}做法:
A:  两个构造的区别?FileOutputStream(File file)FileOutputStream(Stringname)FileOutputStreamfos  = newFileOutputStream("fos.txt");请问上面这个操作做了哪几件事情?* 1.创建了一个文件输出流fos,指向文件a.txt* 2.创建了a.txt这个文件B:     fos.write("helloworld".getBytes());C:               fos.close();关流D:           fos.write("java".getBytes());2.3
FileOutputStream写数据的方法
write(byte[] b)
write(int b) :一次写一个字节
write(byte[] b, int off, int len) :一次写一个字节数组的一部分2.4
字节输入流:
具体操作步骤:* 字节输入流操作步骤:* A:创建字节输入流对象FileInputStream  fis = new FileInputStream("a.txt");* B:调用方法读取数据一次读取一个字节:read()-- 测试读取不到内容的时候的返回值(并且用循环改进)* C:释放资源fis.close* 练习:*             A:把a.txt的内容复制到b.txt中*             C:把d:\\复制视频文件* 数据源:*             IODemo.java   --       读取数据         --       InputStream    --       FileInputStream       --       一次读取一个字节* 目的地:*             Copy.java --       写出数据         --       OutputStream-- FileOutputStream -- 一次写一个字节2.5
字节输入流:
具体操作步骤:* 字节输入流操作步骤:* A:创建字节输入流对象FileInputStream  fis = new FileInputStream("a.txt");* B:调用方法读取数据(一次读取一个字节数组,提升效率)一次读取一个字节数组:public int read(byte[] b):返回实际读取长度,数据被读取到数组中。-- 测试方法返回长度?根据String类的构造方法构造字符串* C:释放资源fis.close2.5* 字节缓冲区流(也叫高效流):*             BufferedInputStream(read() 一次读取一个字节,public int read(byte[] b):返回实际读取长度,数据被读取到数组中。)*             BufferedOutputStream(write(byte[]b))** 流*             低级流: 基本的流,可以直接操作文件。*             高级流:是操作基本流的流。2.6* 字节流复制文件:* A:基本字节流一次读写一个字节             * B:基本字节流一次读写一个字节数组             * C:高效字节流一次读写一个字节             * D:高效字节流一次读写一个字节数组            获取时间的方法:System.currentTimeMillis()三:编码问题??*String中的编码和解码问题。** 编码:*             把我们能够看懂的字符转换为看不懂的数据* 解码:*             把我们看不懂的数据转换为看得懂的字符** 举例:*             电报/潜伏(余则成 深海)**             编码表:*                      小本子,这个本子上记录了很多的汉字和对应的数据值。**             延安:*                      今晚兴庆公园见*                     *                      发报员:*                               今晚兴庆公园见*                               转换成数据*             发送数据*            *             余则成:*                      接收数据*                      记录完毕后,就找出小本子,通过对应的数据值找到对应的字符*                      今晚兴庆公园见public byte[] getBytes(StringcharsetName)  按照给定的编码方式,编码字节数组(gbk,utf-8)String(byte[] bytes, String charsetName) 按照给定的编码方式解码字符数组String s = "中国好";byte[]bytes = s.getBytes("utf-8");System.out.println(Arrays.toString(bytes));//String(byte[]bytes, String charsetName)System.out.println(newString(bytes,"gbk"));结论:用什么编码,就必须用什么解码。。异常:
1.1
异常:就是程序出现的不正常的情况。* 异常:*             错误:这是非常严重的问题,一般我们处理不了,一般在这里指的是硬件问题。*             异常:*                      编译时期异常         开始就必须要处理的,如果不处理,后面就走不了。*                      运行时期异常         开始可以不用处理。这种问题一旦发生,就是我们的程序问题,需要我们修改程序。** 体系结构:*Throwable:*             Error:*             Exception:*               非RuntimeException:编译时期异常*                      RuntimeException:运行时期异常* 异常演示:*             除数不能为0**java.lang.ArithmeticException: / by zero** 针对异常,JVM默认的处理方案:*             一旦遇到程序出现了问题,就会把问题的类名,错误原因,错误的位置等信息打印在控制台,以便我们观察。*             并且,会自动从当前出问题的地方停止掉。** 这种处理方案虽然可以,但是不够好。* 哪里不好呢?*             其实程序出问题,不应该直接停止,因为我们的程序可能是由多部分组成的,*             其中一个部分出问题了,不应该影响其他部分的执行。*             所以,我们应该想办法让其他的部分能够执行下去。1.2* 我们是如何处理异常,保证各个部分不影响的呢?* 两种方案:*             A:try...catch...finally*             B:throws**try...catch...finally:*             try{*                      可能出现异常的代码*             }catch(异常类名 变量名) {*                      针对异常的代码处理*             }finally {*                      释放资源的地方*             }** 我们简化一下第一个:*try{*             可能出现异常的代码*   }catch(异常类名 变量名) {*             针对异常的代码处理*   }
package com.edu_01;
/***  * 我们是如何处理异常,保证各个部分不影响的呢?* 两种方案:*     A:try...catch...finally*     B:throws* * try...catch...finally:*     try{*         可能出现异常的代码*     }catch(异常类名变量名) {*         针对异常的代码处理*     }finally{*         释放资源的地方*     }* * 我们简化一下第一个:* try{*     可能出现异常的代码*  }catch(异常类名变量名) {*     针对异常的代码处理*  }**/
publicclass ExceptionDemo3 {publicstaticvoid main(String[] args) {System.out.println("start");int a= 10;int b = 0;try{//可能出现异常的代码System.out.println(a/b);//当除数为0的时候会抛出ArithmeticException这个异常//接着程序会拿着这个异常和catch里面的异常类已经对比                  }catch(ArithmeticException e){//当程序抛出ArithmeticException这个异常之后给出的具体的处理方法System.out.println("你的除数不能为0");}System.out.println("end");}}1.3* 多个异常的处理(演示数组索引越界异常,除数为0异常)* A:针对每一个出现问题的地方写一个try...catch语句* B:针对多个异常,采用一个try,多个catch的情况。*             try...catch...catch...**             遇到try里面的问题,就自动和catch里面进行匹配。*             一旦匹配就执行catch里面的内容,执行完毕后,接着执行后面的代码。**             注意:*                      如果异常间有子父关系,父必须在最后。1.4* 编译时期异常和运行时期异常的区别:* 编译时期异常:Java程序必须显示处理,否则程序就会发生错误,无法通过编译*             FileNotFoundException(文件未找到异常)* 运行时期异常:无需显示处理,也可以和编译时异常一样处理*             ArithmeticException1.5*Throwable中的方法:(演示除数为0异常)*printStackTrace():打印异常信息,程序从出问题的地方开始就会打印创建一个该异常对应的对象,该对象直接调用打印方法1.6(演示编译器异常,运行期异常)*try...catch 是直接进行了处理。* 而throws则是把异常处理的事情交给了调用者。**throws用在方法上,声明方法有异常,交给调用者处理。* 但是呢,如果是编译时期异常,调用就必须处理。*              如果是运行时期异常,调用者可以处理,也可以不处理。1.7*throws:(演示文件未找到异常,除数为0异常)*             用在方法声明后面,跟的是异常类名*             可以跟多个异常类名,用,号隔开*             表示抛出异常,由该方法的调用者来处理*             throws表示出现异常的一种可能,并不一定会发生这些异常1.8* 异常处理:*try...catch...finally**finally:一般用于释放资源。在数据库操作或者IO流比较常见。** 特点:*             被finally控制的语句体一定会执行**             特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))1.9*finally相关的面试题:*final,finally的区别?*             final:最终的意思。可以修饰类,方法,变量。*                      修饰类,类不能被继承*                      修饰方法,方法不能被重写*                      修饰变量,变量是常量*             finally:*                      异常处理的一部分。被finally控制的代码一定会执行。*                      特殊情况:在执行到finally之前,jvm退出了。1.9.1* 注意:*             A:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)*             B:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常C:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws上述仅仅针对编译时期异常与运行时期异常无关。1.9.2throw和throws的区别?*throws:*             用在方法声明后面,跟的是异常类名*             可以跟多个异常类名,用逗号隔开*             表示抛出异常,由该方法的调用者来处理*             throws表示出现异常的一种可能性,并不一定会发生这些异常**throw:*             用在方法体内,跟的是异常对象名*             只能抛出一个异常对象名*             表示抛出异常,由方法体内的语句处理*             throw则是抛出了异常,执行throw则一定抛出了某种异常?案例演示:演示编译时期异常(文件未找到异常)和运行时期异常(除数为0异常)使用上的区别*throw:*             如果throw的是编译时期异常,在方法声明上必须用throws进行标记*             如果throw的是运行时期异常,在方法声明上可以用throws进行标记,也可以不用。
package com.edu_03;import java.io.FileInputStream;
import java.io.FileNotFoundException;/***  throw和throws的区别?*throws:*             用在方法声明后面,跟的是异常类名*             可以跟多个异常类名,用逗号隔开*             表示抛出异常,由该方法的调用者来处理*             throws表示出现异常的一种可能性,并不一定会发生这些异常**throw:*             用在方法体内,跟的是异常对象名*             只能抛出一个异常对象名*             表示抛出异常,由方法体内的语句处理*             throw则是抛出了异常,执行throw则一定抛出了某种异常?**/
public class ThrowDemo {publicstatic void main(String[] args) {method();try{method2();}catch (FileNotFoundException e) {e.printStackTrace();}}privatestatic void method2() throws FileNotFoundException{try{FileInputStreamfis = new FileInputStream("D://a.txt");}catch(FileNotFoundExceptione){//当遇见这个异常之后,直接抛出(这就是我给出的处理方法)//如果【抛出的是编译时期异常的话,必须在方法声明上给予声明thrownew FileNotFoundException();}}privatestatic void method() throws ArithmeticException{inta = 10;intb = 2;if(b==0) {//在这里抛出的是运行时期异常,抛出这个异常的同时,可以在方法声明上给予声明,也可以不声明thrownew ArithmeticException();}else{System.out.println(a/b);}}}

转载于:https://blog.51cto.com/12771294/1924437

十二、十三天总结笔记相关推荐

  1. 我在千峰培训的日子第十二–十三天------面向对象【继承】

    我在千峰培训的日子第十二–十三天------面向对象[继承] 今日感悟 人生最遗憾的莫过于放弃了不该放弃的,固执的坚持了不该坚持的. 老师知识点 一.局部变量跟成员变量 形参和实参 形参:定义在方法中 ...

  2. Python爬虫学习笔记-第十二+十三课(selenium综合练习-12306购票)

    selenium综合练习-实现12306购票 1. 练习初衷 2. selenium实现12306购票 2.1 类基本框架 2.2 网站登录 2.3 车次以及余票查询 2.4 解析车次列表 2.5 确 ...

  3. 第十二,十三周第12个容器架构

    容器架构 Iaas Paas Saas iaas :基础设施即服务 Infrastructure-as-a-Service paas:平台即服务 Platform-as-a-Service saas: ...

  4. Java编程思想—第十二十三章

    1.在堆中new出异常对象 2.通常用System.err来输出异常,而System.out可能会被重定向,不建议用. 3.在catch中抛出异常throw e.则之后的catch子句将被忽略. 4. ...

  5. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  6. OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己

    OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...

  7. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  8. OpenCV学习笔记(十一)(十二)(十三)(十四)(十五)

    OpenCV学习笔记(十一)--谈谈像素的类型和对Templates的限制使用 Templates是c++的一个很强大的特征,可以是数据结构更加安全高效.但也会增加编译时间和代码的长度,当函数被频繁调 ...

  9. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高...

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  10. 大话设计模式笔记(二十一、二十二、二十三、二十四、二十五、二十六)

    二十一.单例模式(Singleton) 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 1.通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象.一个最好的办法就是 ...

最新文章

  1. 解析:Web前端未来的前景如何呢?
  2. boost::coroutine模块实现不对称echo的测试程序
  3. 第六章:编写安全应用
  4. 对信号函数sigaction的sa_mask的学习
  5. python接口自动化参数化_python接口自动化-参数化
  6. .NET现成程序给你用[四]
  7. 强化学习之DQN(附莫烦代码)
  8. 计算机集成声卡输出通道,电脑集成与独立声卡的差别有哪些?
  9. 传统蓝牙协议栈 串口协议SPP(Serial Port Profile)概念介绍
  10. 制造行业实施作业成本法案例(AMT 邓为民)
  11. AS3实现经典算法(一) 斐波纳契数列
  12. java 素数 五行_c语言动态烟花小程序代码
  13. C++ Virtual 完美诠释
  14. 系统时间有误,造成网站无法登录故障处理
  15. 计算机的it入门知识点,基础乐理知识点电脑基础知识IT计算机专业资料-基础乐理知识点(5页)-原创力文档...
  16. GoogLeNet: Going deeper with convolutions
  17. HttpClient实战爬虫B站番剧
  18. 第二部分 Linux Shell高级编程技巧——第三章 运行级别脚本介绍
  19. 2021年电工(中级)考试及电工(中级)新版试题
  20. 水荒 water scarcity

热门文章

  1. 七月老师python_七月在线Python学习笔记
  2. 宿主不能访问本机虚拟机中的web服务器
  3. 实现tomcat的https单向认证及双向认证
  4. c语言函数编写格式,在c语言中如何实现函数模板?
  5. Python精通-Python函数使用
  6. Spring拓展接口之FactoryBean
  7. Eclipse 下如何引用另一个项目的Java文件
  8. Redis:分布式锁setnx(只 实现了 互斥性和容错性)
  9. springboot 整合hbase
  10. IIS rest服务delete 报错