字符流和字节流的区别

2024-08-22 20:54:55 浏览

每次读写的字节数不同;

字符流和字节流的区别

字符流是块读写,字节流是字节读写;

字符流带有缓存,字节流没有。

java流在处理上分为字符流和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。

字符流和字节流,一个属性范围小,一个属性范围大,字符流只能是字符这一种类型,但是字节流中可以是字符,可以是二进制文件,可以是音频,可以是各种各样的类型,只要符合字节形式存储的都可以接字节流,而字符流只能接字符。

按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。

  节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.

  处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。

  JAVA常用的节点流有以下几个:

  文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件进行处理的节点流。

  字符串 StringReader StringWriter 对字符串进行处理的节点流。

  数 组 ByteArrayInputStream ByteArrayOutputStreamCharArrayReader CharArrayWriter 对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)。

  管 道 PipedInputStream PipedOutputStream PipedReaderPipedWriter对管道进行处理的节点流。

  常用处理流(关闭处理流使用关闭里面的节点流)

  增加缓冲功能,避免频繁读写硬盘。

  转换流:InputStreamReader OutputStreamReader实现字节流和字符流之间的转换。

  数据流 DataInputStream DataOutputStream 等-提供将基础数据类型写入到文件中,或者读取出来。

提示,不要通过字节流或者是字符流的形式进行读取,可以直接通过BufferedReader 流的形式进行流读取,就没有换行符无法区分的问题,之后通过readLine方法获取到流的内容。

;//此时获取到的bre就是整个文件的缓存流while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环{System.out.println(str)

;//原样输出读到的内容};备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。