JAVA网络编程学习笔记(流)

本文参考自《Java高级程序设计》清华大学出版社,侵删

流:通过一定的传播路径从源传递到目的地字节序列。

输出流:基类是java.io.OutputStream ,一个抽象类,提供了一些基本的方法向流中写入数据:

public abstract void write(int b) throws IOException

将指定字节写入流(只写入传入参数的低八位)

public void write (byte[] b) throws IOException

将byte数组中的所以字节写入输出流

public void write(byte[] b, int off, int len) throws IOException

将字节数组中的指定的部分字节写入输出流。b为指定的字节数据,off为偏移量,len为写入的字节长度

public void flush() throws IOException

将输出流缓存的所有字节写向它们的预期目标

此方法只能保证将流传递给操作系统,但不能保证能正确到达目标

public void close() throws IOException

关闭此输出流,并释放占用的系统资源

 

输入流:基类是java.io.InputStream ,一个抽象类,提供了一些基本的方法读取流:

public abstract int read() throws IOException

从输入流中读取数据的下一个字节。返回0~255范围内的int字节值。如果到达流末尾,返回-1

public int read(byte[] b) throws IOException

将输入流中的字节存入字节数组b中,以整数形式返回实际读取的字节数

public int read(byte[] b, int off, int len) throws IOException

将输入流中读取的字节存入数组b中,读入的字节从b[off]开始存储,读取的长度为len,若输入流中的字节数小于len,则将输入流读完,最终返回读取的字节数

public long skip(long n)throws IOException

跳过输入流的n个字节,并将这些字节丢弃

public int available() throws IOException

获取输入流中可供读取或跳过的字节数

public void close() throws IOException

关闭此输入流,并释放关联的系统资源

 

流处理工具

输出流处理工具:Java定义了一个抽象的基类java.io.Writer,该类对write方法进行了5次重载

但是其本身不常用,这些方法多由子类覆盖重新定义,如 子类PrinterWriter

输入流处理工具:Java定义了一个抽象的基类java.io.Reader,提供了4个read方法

同上,多使用其子类来读取输入流,常用的子类:

InputStreamReader 使用指定的字符集读取输入流中的数据并将其解码为字符,通常为了提高其使用效率,还需用BufferedReader进行一次封装

BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取

通常使用该类包装那些读取开销很大的读取工具,如InputStreamReader

包装方式如下:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值