文档详情

Java chp7.ppt

发布:2016-11-15约1.98万字共87页下载文档
文本预览下载声明
random方法 生成大于等于0.0小于1.0的double型随机数。 一般的: 返回a到a+b之间的随机数,不包括a+b。 实例学习:生成随机字符 Unicode字符集在0到FFFF(即十进制的65535)之间。生成一个随机字符亦即生成在0~65535之间的一个随机整数。 随机生成‘a’-‘z’、‘A’-‘Z’、‘0’-‘9’之间的字符 随机显示100个小写字母 Random类 一个更为有效的随机实数产生器在Random类中给出 可以试着将前面的随机字符产生程序用Random类提供的方法重写。 close方法 finalize方法 确保在不再引用文件输入流时调用其 close 方法。 skip方法 从输入流中跳过并丢弃 n 个字节的数据。 read方法 从此输入流中读取一个数据字节 从此输入流中将最多 b.length 个字节的数据读入一个字节数组中 从此输入流中将最多 len 个字节的数据读入一个字节数组中 write方法 将 b.length 个字节从指定字节数组写入此文件输出流中。 以上两个范例中都采用int变量读取和写入,不同的是,前者int变量在其最后8位中保存一个字节值,后者int变量在其最后16位中保留一个字符值。 文件操作例程 将文件1的内容复制到文件2中 6. 输入/输出流的简要总结 回顾两段程序: 如xanadu.txt这样的文件以及更加复杂的数据类型的流,如在读写中涉及字符数据,最好的途径是使用字符流。 字节流只应该用于最原始的I/O。 面向行的字符I/O 通常出现在单位大于单一字符的情况下,一个常见的单位就是行。 行终止符可以是回车/换行序列“\r\n”,单一回车“\r”,单一换行“\n”,通过支持所有可能的行终止符,使程序可以读取在任何广泛使用的操作系统上创建的文本文件。 使用面向行的I/O需要使用BufferedCharacters和PrintWriter两个类。 readLine返回一行文本,其中的行终止符被删除。 println输出每行文本,并在行尾附加当前操作系统使用的行终止符。 数据流 数据流支持基本数据类型值和String值的二进制I/O。 所有数据流实现DataInput接口或DataOutput接口。 DataInputStream和DataOutputStream是以上两个接口的使用最广泛的实现,它们只能被创建为现有字节流对象的包装器。 例程:通过数据流方式将一组数据写入到文件中,再从文件中读出数据。 数据定义: 打开一个输出流并写出数据记录 打开一个输入流读入数据: 注意: 数据流通过捕获EOFException异常检测文件结束条件,而不是通过检查返回值是否为-1来判断。 数据流中每个专门的write都严格的与专门的read相匹配,由程序员确保输出类型和输入类型按照这种方式匹配。 输入流由简单的二进制数据构成,没有办法表明各个值的类型或者它们从什么地方开始。 在上述的程序中使用浮点数表示货币值,但是总的来说,浮点数并不适用于精确值,对于十进制小数尤其不适合。 例如:0.1怎样用二进制精确的表示? 用于货币值的正确类型是java.math.BigDecimal,但它是对象类型,无法处理数据流,这时就需要引入对象流的概念。 对象流 对象流支持对象的I/O。 对象流类是ObjectInputStream和ObjectOutputStream,它们实现ObjectInput和ObjectOutput接口(分别继承自DataInput接口或DataOutput接口)。 上面的程序实例改写为: 修改数据 输入和输出的改动: 同理,打开输入流读取数据时,将获取price的语句改为: 如果readObject没有返回预期的对象类型,试图把它转换为正确类型可能会抛出ClassNotFoundException。 java.nio.* 以上讨论的都是java.io包中以及java.lang包中设计的输入/输出。通过简单且容易使用的API,来实现基本I/O服务: 数据流 随机访问文件 字符转换 缓冲 java.nio包中提供了比java.io包更灵活的API,用于可伸缩的I/O、快速缓冲字节与字符I/O以及字符集转换等功能。 文件过滤器 FileFilter和FilenameFilter Java提供了文件过滤器(包括FileFilter和FilenameFilter两个接口)用来对文件名字符串进行筛选,以便获得满足需求特征的文件集合。 以上两个接口都包含accept方法,但方法的参数不同: 文件过滤器可以作为File类的列表方法的参数,用于获得符合过滤要求的文件列表: FilterInputStream
显示全部
相似文档