Java基础-IO流详细学习笔记(字节流)

Java基础-IO流详细学习笔记(字节流)

继续学习IO流的字节流部分,有关上部分的内容请点击Java基础-IO流详细学习笔记(字符流),本部分与上部分为对称关系,字符流部分掌握,这部分就掌握了

字节输入输出流的主要类为

OutputStream与InputStream,这两个都是抽象类,需要被继承,我们一般用他们的实现类FileInputStream与FileOutputStream

创建流对象,指定操作文件

 OutputStream out =null ;
 InputStream in  = null ;

    /*第一种构造器,参数为File对象*/
    out =  new FileOutputStream(new File("testIO2.txt")) ;
    /*第二种构造器,参数为filename(string)false为否覆盖*/
    out1 =  new FileOutputStream("testIO2.txt",false) ;	

     /*字节流写入流构造器,参数为filename(string)*/
     in = new FileInputStream("testIO2.txt") ;

Write写入

一般以数组形式进行写入

	 byte[] bs = {97,99,103,111} ; //展示的是asc码
     out.write(bs);

注意:字节流不需要清洗缓存(flush)

Read读取

   byte[] bs1 = new byte[2] ;//读取到的数据会被存入此数组
  /*循环读取直至读完*/
   int len = -1 ;//-1代表读不到东西了
   while ((len = in.read(bs1))!=-1){ //判断是否读取完毕
   String str = new String(bs1,0,len) ;//转化为字符串,由于覆盖关系,参数为读取到的数据的长度(保证有效数据)
   System.out.println(str);
            

Buffered…

字节流高效缓冲区

原理与字符流基本一致,不再赘述

OutputStreamWriter/InputStreamWriter

字符流与字节流之间的转换桥梁

此部分主要考虑编码问题,比如我们需要控制输入与输出的编码,如控制流以GBK编码写入,以GBK编码读取(展示)

创建对象

  OutputStreamWriter ow = null;
  InputStreamReader ir = null ;
  /*参数为out/inputstream对象*/ 
  ow = new OutputStreamWriter(new FileOutputStream("testIO2.txt"),"utf-8")
  ir = new InputStreamReader(new FileInputStream("testIO2.txt"),"utf-8") ;

读取与其他流完全一致

PrintWriter打印流

打印流只支持输出而无输入,分字符打印流和字节打印流,PrintWriter为字符打印流

功能:

  • 打印各种数据类型
  • 封装了字符输出流,也支持字符流和字节流的转化
  • 自动刷新(flush)
  • 支持直接向文件写数据

创建对象

 PrintWriter pw = null ;
 pw = new PrintWriter("testIO2.txt") 
 //pw = new PrintWriter(System.out) ->打印到控制台    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值