Java 流
来源:互联网 发布:荆州网络电视垄上行 编辑:程序博客网 时间:2024/06/05 23:03
java 流的本质是数据传送的管道,java 中利用流实现外部数据的交互
文本文件
1。以字符形式存储的文件
2. 文本文件可见( 存储起,键盘输入的都是文本文件)
3。文本文件需要转化, 也就是说从键盘中输入的字符星数据,药转化为二进制数据才能存储到内存里面。 而内存的二进制数据也要转化到字符星数据才能在屏幕显示
二进制文件
1.以内存的方式存储
2.不可见传输效率高
基本字节流
1.文件字节流 2.网络字节流 3.标准字节流
InputStream 抽象类
int read()l 从输入流中读取一个字节,形成 0-255之间的整形返回
随机流
也就是FIle 流
文件字节流
为了防止意外,输出流应该刷空(flash())
套接流 ##
data流: 嵌入流,放入网络流的实话,可以一次处理一个字符串,并且恶意对字符进行编码
对象流
持续性: 把对象文件状态进行传送,接收者可以通过接收的状态从而创建对象序列化:对象通过写出描述自己转台的数字莱记录表自己的过程叫串行化(序列化)反序列化: 生成对象 (反序列化)1.实现串行化协议()implemenets Serializable 2 。存放的文件只能是二进制文件 new FileOutputStream ("as.data");3. 嵌入 对象输出流 out = new ObjectOutputStream (new FileOutputStream ("as.data"));4. 写入 : out.write(对象的引用实例化)5.反序列化:Student t = (Student)in.readObject();
反射创建对象
管道流
1. 输入流和输出流首尾相接 2
. 创建:
1.在构造方法中连接: PipedInputStream pis = new PipedInputStream(); //管道输入流对象
PipedOutputStream pos = new PipedOutputStream(pis); //管道输出流 。参数是输入流对象,结果便是首位相连
顺序输入流
当输入流太多的时候,一个个读取太麻烦,所以出现了SequenceInputStream 可以几个输入连接起来,像是一个比较长的流而已 ,让代码更简洁:
FileInputStream f1,f2;String s;f1 = new FileInputStream(“file1.txt”);f2 = new FileInputStream(“file2.txt”);SequenceInputStream fs = new SequenceInputStream(f1, f2);DataInputStream ds = new DataInputStream(fs);while( (s = ds.readLine()) != null ) System.out.println(s);
以上都是字节流
字符流
因为一个个字节读取效率太满。所以出来了字符流 字符流的使用需要考虑编码
如果读取的字符流不是来自本地时(比如网上某处与本地编码方式不同的机器),那么在构造字符输入流时就不能简单地使用缺省编码规范,而应该指定一种统一的编码规范“ISO 8859_1(国际)”,这是一种映射到ASCII码的编码方式,能够在不同平台之间正确转换字符。UTF-8 (国内)
InputStreamReader ir = new InputStreamReader( is, “8859_1” ); //国际
字符流不能处理二进制文件,只能处理文本文件
InputStreamReader和OutputStreamWriter
阅读全文
0 0
- Java深入 - Java 流
- Java流
- java流
- Java--流
- java 流
- java流
- Java 流
- Java流
- JAVA流
- java流
- Java- 流
- java流
- java流
- java流
- Java流
- Java流
- Java 流
- Java流
- JDBC学习练习 MySQL数据库连接
- 相对路径和绝对路径
- 洛谷 Cx的故事
- 【解决方案】jquery mobile 页面事件多次重复跳转
- 面试归来——梳理社招面试以及浅述对程序员职业生涯的看法
- Java 流
- Perl_获得字符串长度_length($var)
- 数据结构及算法知识(一)
- 解析js中的深拷贝和浅拷贝
- 集合 详解
- overlaps the location of another project Zendstudio导入已经存在的目录
- 奥术大师多撒多撒
- GC
- C++ map用法详解