黑马程序员-IO(二)
来源:互联网 发布:linux cannot stat 编辑:程序博客网 时间:2024/05/22 13:09
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
装饰设计模式:
当想要对已有对象进行功能增强时。可以定义类,将已经有的类传入,基于已经有的功能,并且提供增强的功能,那么自定义的类就是装饰类。
- 两个基类:outputStream inputStream ;
- 缓冲区:Buffer+两个基类的名称
小技巧: 如何分辨字节流和字符流,就是字节流用byte[]操作, 字符流用char[] 操作
在字节流当中是对数据的最小操作,所以在写入操作的时候就不需要刷新操作。
【IO流的基本操作规律】
- 明确源和目的
- 源:输入流, inputstream ,Reader
- 目的:输出流 ,OutputStream , Writer
- 操作的数据是否是纯文本,
- 是:那么是字符流
- 不是:那么是字节流
- 当然字符流和字节流可以通过桥梁对象来引导
- 当体系明确以后,在明确是那个对象
- 我们可以通过设备来划分,
- 源:内存,键盘,硬盘
- 目的射门:内存,硬盘,控制台
使用缓冲区读写文件的思路:
- 1.通过两个基类。建立一个读写数据的流通道。因为我们在read(读取的时候是一个字节一个字节读取的可能有点慢,
- 建立一个缓冲区,通过底层流对象的rend()方法,把数据从硬盘一大批的存储在缓冲区当中,
- 接着就可以缓冲区读取读取数据了
- 写入数据就是读取数据的相反。
- 代码演示:
//文件读缓冲区 BufferedInputStream bufin =new BufferedInputStream(new FileInputStream("文件地址"));//文件写的缓冲区 BufferedOutputStream bufout =new BufferedOutputStream(new FileOutputStream("写到的文件地址"));byte [] buf = new byte[1024];int len = 0;//读取到缓冲区当中,返回值为读取的长度,然后呢读取指针指向下一个地址,如果读取的结束了就返回 -1 ,//所以这里我反复的读取while ((len = bufin.read(buf))!=-1) {//写入数据,一直写,如果流还没有关闭的话。就一直在文本里面接着写入到后面的数据,设置len是保证他写入的长度; bufout.write(buf,0,len); }//不要忘记关闭流
bufin.close(); bufout.close();
读写文件
一个流被定义为一个数据序列。输入流用于从源读取数据,输出流用于向目标写数据。
下图是一个描述输入流和输出流的类层次图。
【读取键盘的录入】
system.out:标准输出流 –> 对应的是标准的输出设备:一般就是显示器
system.in: 标准的输入流->对应的一般就是输入设备
从控制台获取字符串的方法:
思路:
1.在我查看api文档的时候。查阅得控制太的输入是一个字节流。
2.既然是字节流。其实我们是可以用InputStream衍生出来的类。去读取的。但是就是麻烦。
3.所以我们可以把字节流引入到字符流对象当中,我们就可以用readnLine方法了。实现方式如下面
//创建键盘录入对象,键盘录入的是一个字节流。那么我们可以把他转换成为字符流,InputStream in = System.in;//创建一个字节流导向字符流的桥梁InputStreamReader isReader = new InputStreamReader(in);//创建一个字流的缓冲区 BufferedReader buf = new BufferedReader(isReader);String line = null; while((line = buf.readLine())!=null){ if("over".equals(line)) { //如果用户输入的是的over那么结束录入功能。 break; } System.out.println(line); }
0 0
- 黑马程序员-IO(二)
- 黑马程序员-IO(二)
- 黑马程序员---IO(二)
- 黑马程序员-IO(二)
- 黑马程序员----IO(二)
- 黑马程序员-----IO(二)
- 黑马程序员--IO流笔记(二)
- 黑马程序员 IO流(二)
- 黑马程序员--IO流(二)
- 黑马程序员 ---IO输入输出(二)
- 黑马程序员 IO流(二)
- 黑马程序员 IO流(二)
- 黑马程序员 IO流(二)
- 黑马程序员--学习笔记(IO二)
- 黑马程序员---IO流(二)
- 黑马程序员------IO操作总结(二)
- 黑马程序员---IO流(二)
- 黑马程序员----IO流(二)
- Roman to Integer
- 压缩文本、字节或者文件的压缩辅助类-GZipHelper
- Android SDK下载和更新失败的解决方法
- 避免Android中Context引起的内存泄露
- java pgAdmin数据库连接
- 黑马程序员-IO(二)
- 基于mob平台,手机短信验证码实现登录功能
- Android实战简易教程-第十八枪(ViewPager组件详解)
- JQuery常用的几种显示隐藏的方法
- 第二章:安装ogg&单向复制测试(典型的配置)
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- 黑马程序员-File类+递归的简单应用
- 移动端select菜单无法修改默认样式
- 杭电ACM 动态规划 1 数塔