Java 流

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值