流
来源:互联网 发布:ubuntu怎么切换到root 编辑:程序博客网 时间:2024/05/01 21:42
今天老师主要讲了流的分类,老师将讲的这些我觉的理解起来有些困难,课下看书有时也不是很理解做起作业来也非常困难。虽然有很大的困难和苦恼但是并不会击垮我要学的信心。
流的分类:
1按数据流动方向
输入流:只能从中读取字节数据,而不能向其写出数据
输出流:只能向其写入字节数据,而不能从中读取数据
2按照流所处理的数据类型
字节流:用于处理字节数据。
字符流:用于处理Unicode字符数据
3按照流所处理的源
节点流:从/向一个特定的IO设备读/写数据的流
处理流:对已存在的流进行连接和封装的流。
过滤流
抽象的InputStream和OutputStream类允许我们对字串及数字进行读写。为达到这个目的,还需要功能更多的子类。例如:DateInputStream和DataOutputStream允许我们对所有基本的java类型进行读写。
文件流类与抽象的InputStream和OutputStream类相似,这些类也只支持字节级的读写操作。换言之,只能从fin对象中读取字符和字节数组。byte b=fin.read(),他们没有提供专门的数值类型,所以DataInputStream没有办法从一个文件中获取数字。
解决方案:java给流职责分工,某些流(FileInputStream)负责从文件或另一些更特殊的地方读入字节数据。而另一些流
(DataInputStream、PrintWriter)负责将字节“组装”成更有用的数据类型。必须综合运用这两种流,将其合并成所谓的"过滤流(FilteredStreams)",方法是将一个现成的流传递给另一个流的构建器。
字节缓冲流
1 BufferedInputStream
2 BufferedOutputStrem
类的构造及成员详见文档
默认情况下,流不会进行缓冲。即每读一次,都会要求操作系统提供一个字节。通过BufferedInputStream和
BufferedOutputStream对流构建器进行过滤分层,实现缓冲。
1、构造函数:
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in, int size) //size:缓冲区的大小
BufferedInputStream bis=new BufferedInputStream(System.in);
BufferedInputStream bis=new BufferedInputStream(System.in ,100);
//用缓冲字节流实现文件读写
import java.io.*;
publicclass BufferedIOTest {
publicstaticvoid main(String[] args) {
try{
FileOutputStream fos =new FileOutputStream("res/new.txt");
BufferedOutputStream bos =new BufferedOutputStream(fos);
DataOutputStream dos =new DataOutputStream(bos);
dos.writeUTF("good morning!");
dos.writeInt(250);
dos.close();
bos.close();
fos.close();
FileInputStream fis =new FileInputStream("res/new.txt");
BufferedInputStream bis =new BufferedInputStream(fis);
DataInputStream dis =new DataInputStream(bis);
System.out.println(dis.readUTF() + "\n"+ dis.readInt());
dis.close();
bis.close();
fis.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- 流
- JAVA:线程状态的转换
- poj 2186(强连通分量)
- 彩信的通知短信PDU数据分析
- C++笔试常见题目
- JsonP和Json
- 流
- Spring3.0中的前置通知、后置通知、环绕通知、异常通知
- How to use ftrace to trace your kernel module(使用Ftrace跟踪你的内核模块)
- 配置MyEclipse开发环境,并创建项目(史上最全)
- Java练手题一之基本语法
- 装饰模式
- java流量控制
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(一)在Matlab中高效设计滤波器
- 转换流