IO

       本文是笔者在自身学习过程中,对之前产生疑问地方的梳理,以及IO中的知识要点,适合初学者,在没看懂书上讲的内容时,参考理解,查漏补缺。

       I/O 即 输入输出流,如果刚开始学习时,摸不清这个到底是何物,可以想象为你坐在电脑前和别人聊微信,你发出去一个“在么?”,这个“在么?”就是输出流,当你收到一个别人回给你的消息:“我在!”的时候,这个“我在!”就是你的输入流。只是在java的世界里,并不是以“在么?/我在!”这种语言方式来表达,java里我们会把“在么?/我在!”转化为字节流或者字符流来处理。

 

 

简记:写数据用outputstring 读数据用inputstream

       字节流:以字节为单位的传输数据的流。(字节即byte)

       字符流:以字符为单位传输数据的流。(字符即你看到的汉字,英文字母等。)

    inputStream 和outputStream:都是以字节为单位的抽象流类。

    inputStream 以字节为单位读取数据。outputStream 以字节为单位向数据源写出数据。

在outputStream中比inputStream中多了一个flush()方法。

 

Reader和Writer是以字符为单位的抽象流类。分别对应inputStream 和outputStream。

 

FileInputStream和FileOutputStream是以字节为操作单位的文件输入流和输出流。 注意:一个英文字符是采用一个字节编码的,而一个中文字符是采用2个字节编码的,所以直接用FileInputStream读取中文,用print输出将会得到乱码。

 

FileInputStream/FileOutputStream用来操作二进制文件比较合适,如图片,声音,视频等。

 

 

FileReader和FileWriter,是以字符为操作单位的文件输入流和输出流,适合用来操作文本,比如xxx.TXT文件。

 

=====================================================================================================

 

缓冲流:

BufferedInputStream 和BufferedOutputStream。为了提高读写速度,java 使用这些带缓冲功能的流类时,他会先创建一个内部缓冲区数组.

 

 

 
FileInputStream inputStream = new FileInputStream("src/test/java/test/te.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String xx ="";
while ((xx=reader.readLine())!=null)
    System.out.println("xx = " + xx);

FileReader fileReader = new FileReader("src/test/java/test/te.txt");
BufferedReader reader2 = new BufferedReader(fileReader);
while ((xx=reader2.readLine())!=null)
    System.out.println("reader2 = " + xx);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值