昨天坐了十几个钟的车回家,累弊了....

————————————割掉疲劳—————————————

前面的字节输出流都是抛出了异常不管,这次的加入了异常处理:

  首先还是创建一个字节输出流对象,先给它赋值null

 FileOutputStream out =  null ; 

接下来我们就看创建一个字节输出流的步骤中,会有几次可能出现异常的地方:

1、把out指向一个目录路径时,可能会异常。

 try{
out = new FileOutputStream( "z"\\a.txt");
}//我根本就没z盘,肯定错误
catch(FileNotFoundException e){
e.printStackTrace();
}

2、往这个文件中添加数据时,可能会异常

   try {
out.write("java".getBytes());
} catch (IOException e) { e.printStackTrace();
}

3、释放资源时,可能会异常

            try {
out.close();
} catch (IOException e) { e.printStackTrace();
}

为了代码的严谨,上面的代码需要进一步改进:

             FileOutputStream out = null;
try{
out = new FileOutputStream("z:\\a.txt");
out.write("java".getBytes());
//out.close(); 由于前面的两个如果有任一出错,这个就无法执行,所以得放到后面
}
catch(IOException e){
e.printStackTrace();
}
//如果out指向的路径不存在,那么都创建不了文件,所以就不用释放资源
if(out != null){
try{
out.close();
}
catch(IOException e){
e.printStackTrace();
}
}

java 20 - 6 加入了异常处理的字节输出流的操作的更多相关文章

  1. JAVA笔记11__File类/File类作业/字节输出流、输入流/字符输出流、输入流/文件复制/转换流

    /** * File类:文件的创建.删除.重命名.得到路径.创建时间等,是唯一与文件本身有关的操作类 */ public class Main { public static void main(St ...

  2. java 20 - 4 IO流概述和一个简单例子解析

    IO流的分类:  流向: 输入流 读取数据  输出流 写出数据 数据类型:  字节流  字节输入流 读取数据 InputStream  字节输出流 写出数据 OutputStream  字符流  字符 ...

  3. 字节输出流FileOutputStream

    #字节流 字节输出流FileOutputStream 创建输出流对象 OutputStream 流对象是一个抽象类,不能实例化.所以,我们要找一个具体的子类 :FileOutputStream. 查看 ...

  4. 一切皆为字节和字节输出流_OutputStream类&FileOutputStream类介绍

    一切皆为字节 一切文件数据(文本.图片.视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此.所以,字节流可以传输任意文件数据.在操作流的时候,我们要时刻明确,无论使用什 ...

  5. java 20 - 9 带有缓冲区的字节输出流和字节输入流

    由之前字节输入的两个方式,我们可以发现,通过定义数组读取数组的方式比一个个字节读取的方式快得多. 所以,java就专门提供了带有缓冲区的字节类: 缓冲区类(高效类) 写数据:BufferedOutpu ...

  6. java 20 - 7 字节输入流的操作

    字节输入流操作步骤: A:创建字节输入流对象 B:调用read()方法读取数据,并把数据显示在控制台 C:释放资源 步骤A.C 略过,说步骤B  读取数据的方式:  A:int read():一次读取 ...

  7. java 20 - 5 字节输出流写出数据的一些方法

    首先回顾下 字节输出流操作步骤:  A:创建字节输出流对象  B:调用write()方法  C:释放资源 创建字节流输出对象 FileOutputStream fos = new FileOutput ...

  8. 《深入理解Java虚拟机》-----第8章 虚拟机字节码执行引擎——Java高级开发必须懂的

    概述 执行引擎是Java虚拟机最核心的组成部分之一.“虚拟机”是一个相对于“物理机”的概念 ,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器.硬件.指令集和操作系统层面上的,而 ...

  9. Java(20~24)

    1.Collection中的集合称为单列集合,Map中的集合称为双列集合(键值对集合). 2.Map常用方法:map.put()   map.get()   map.remove()   map.ke ...

随机推荐

  1. Web.Config的配置

    1.配置数据库连接 在<connectionStrings></connectionStrings>节中完成,配置过程需指定四个属性server(DataSource)服务器名 ...

  2. How to upgrade workflow assembly in MOSS 2007

    This problem generally start when you are having an existing custom workflow and there are instances ...

  3. Windows2008系统忘记密码的解决方法

    网上转载的,忘记密码不用发愁了.   windows2008系统忘记密码的解决方法: 利用放大镜的漏洞来重设密码 首先用系统盘来引导 选择修复计算机 然后打开命令提示符:先备份放大镜,然后用CMD替换 ...

  4. Ubuntu上安装Apache、MySql和PHP

    参考文献: http://developer.51cto.com/art/201110/299303.htm

  5. Android项目实战(二):安卓应用程序退出的三种方法

    现在的APP退出的时候都不是让用户点击了“后退键”就退出.防止用户点错了后退键而造成的用户体检不好. 一年前搞的Demo代码不见了,重新写下就当是复习和以后直接拿来用把 目前流行的解决一般分为两种: ...

  6. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(五)Image View视图 学习笔记

    留下两个问题:1.后面涉及到的异常不知道原因.2.动态图片到了程序里面就不动了.       然后:   上面是有问题的,下面是没有问题的了.    代码(另外简单写的代码,纠正了那个错误): imp ...

  7. ppt

    放映时  F5是从头开始放映, shift+F5是从当前页开始放映 在菜单->幻灯片放映->勾选  “使用演讲者视图”      就可以在播放时看到自己的备注

  8. bsearch的溢出问题

    在java中为了避免 low+high溢出,可以用无符号右移:正数高位补0,负数高位补1 int mid = (low + high) >>> 1; 如果是在c++中,那么需要先转换 ...

  9. 浅谈 sql 中数据的约束

    数据约束 --对用户操作表的数据进行约束 1.默认值 --当用户对使用默认值的字段不插入值的时候,就使用默认值 1)对默认值字段插入null是可以的. 2)对默认值字段可以插入非null [例如:ad ...

  10. 烂泥:SQL Server 2005数据库备份与恢复

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 服务器的迁移,因为业务使用的数据库是SQL Server 2005,所以就要首先对数据库进行备份. 备份可以分为手动备份和自动备份,我们先来介绍手动备份 ...