Java学习——字节流与字符流的区别

字节流与字符流的区别主要有以下四个方面:

(1)读写单位不同

字节流字节为单位,通常用来处理二进制文件;

字符流字符为单位,在读写的时候根据码表映射,每个字符对应多个字节。

(2)处理对象不同

字节流能处理所有类型的数据(图片、音频),而字符流只能处理字符类型的数据

(3)处理方式不同

字节流中,InputStream是所有字节输入流的祖先,OutputStream是所有字节输出流的祖先;字符流中,Reader所有读取字符串输入流的祖先,Writer是所有输出字符串的祖先。

(4)缓冲区要求不同

字节流在操作本身不会使用缓冲区,是对文件本身进行操作。

字符流在操作的时候使用到了缓冲区,所以在操作字符流的时候不关闭是没有办法对写入数据进行保存的。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Java字节流字符流区别字节流处理的是字节数据,字符流处理的是字符数据。在Java中,一个字符占两个字节,因此字符流在处理时会自动进行编码转换。 字节流可以处理所有类型的数据,包括文本、图像、视频等,而字符流只能处理文本数据。 字节流通常用于处理二进制文件,如图片、音频、视频等,字符流通常用于处理文本文件。 代码示例: 字节流示例: ```java import java.io.*; public class ByteStreamDemo { public static void main(String[] args) { try { File file = new File("test.txt"); FileOutputStream fos = new FileOutputStream(file); String s = "Hello, world!"; byte[] bytes = s.getBytes(); fos.write(bytes); fos.close(); FileInputStream fis = new FileInputStream(file); byte[] bytes1 = new byte[(int) file.length()]; fis.read(bytes1); String s1 = new String(bytes1); System.out.println(s1); fis.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 字符流示例: ```java import java.io.*; public class CharacterStreamDemo { public static void main(String[] args) { try { File file = new File("test.txt"); FileWriter fw = new FileWriter(file); String s = "Hello, world!"; fw.write(s); fw.close(); FileReader fr = new FileReader(file); char[] chars = new char[(int) file.length()]; fr.read(chars); String s1 = new String(chars); System.out.println(s1); fr.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 这两个示例分别演示了使用字节流字符流进行文件读写的过程。字节流示例中,使用 FileOutputStream 写入字节数据,使用 FileInputStream 读取字节数据;字符流示例中,使用 FileWriter 写入字符数据,使用 FileReader 读取字符数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_7Ella

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值