IO流(三)[处理流]

目录

处理流

常用的处理流

转换流

常用方法


 

处理流

处理流和节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接

常用的处理流

  • 缓冲流:BufferedInputStrean 、BufferedOutputStream、 BufferedReader、 BufferedWriter 增加缓冲功能,避免频繁读写硬盘
  • 转换流:InputStreamReader 、OutputStreamReader实现字节流和字符流之间的转换
  • 数据流: DataInputStream 、DataOutputStream 等-提供将基础数据类型写入到文件中,或者读取出来
InputStreamReader(InputStream);        //通过构造函数初始化,使用的是本系统默认的编码表GBK。
InputStreamWriter(InputStream,String charSet);   //通过该构造函数初始化,可以指定编码表。
OutputStreamWriter(OutputStream);      //通过该构造函数初始化,使用的是本系统默认的编码表GBK。
OutputStreamwriter(OutputStream,String charSet);   //通过该构造函数初始化,可以指定编码表。

转换流

转换流:属于字符流

  • InputStreamReader:将一个字节的输入流转换为字符的输入流
  • OutputStreamWriter:将一个字符的输出流转换为字节的输出流

作用:提供字节流与字符流之间的转换

InputStreamReader 、OutputStreamWriter 要InputStream或OutputStream作为参数,实现从字节流到字符流的转换

//获取键盘录入对象
class TransStreamDemo
{
    public static void main(String[] args)throws IOException
    {
        //获取键盘录入对象
        InputStream in =System.in;
 
        //将字节流对象转成字符流对象,使用转换流
        InputStreamReader isr = new InputStreamReader (in);
 
        //为了提高效率,将字符串进行缓冲区技术高效操作,使用BufferedReader
        BufferedReader bufr = new BufferedReader(isr);
 
        String line = null;
 
        while((line=bufr.readLine())!=null)
        {
            if("over".equals(line));
                break;
            System.out.println(line.toUpperCase());
        }
        
        bufr.close();
    }
 
}
//获取键盘写入对象
class TransStreamDemo
{
    public static void main(String[] args)throws IOException
    {
        //获取键盘录入对象
        InputStream in =System.in;
        //将字节流对象转成字符流对象,使用转换流
        InputStreamReader isr = new InputStreamReader (in);
        //为了提高效率,将字符串进行缓冲区技术高效操作,使用BufferedReader
        BufferedReader bufr = new BufferedReader(isr);
 
        //以上可以何合为一行代码,这时键盘最常见的写法
        //BufferedReader bufr = new BufferedReader(new InputStreamReader (System.in));
        
        //获取键盘写入对象
        OutputStream out = System.out;
        OutputStreamWriter osw = new OutputStreamWriter(out);
        BufferWriter bufw = new BufferdWriter(osw);
        
        
 
        String line = null;
 
        while((line=bufr.readLine())!=null)
        {
            if("over".equals(line));
                break;
            bufw.write(line.toUpperCase());
            //换行
            bufw.newLine();
            //刷新到控制台
            bufw.flush();
            
        }
        
        bufr.close();
    }
 
}

常用方法

void close() 
void flush() 
void write(char[] cbuf,int off,int len)  //写入字符数组的某一部分
write(int c) //写入单个字符
write(String str,int off,int len) //写入字符串的某一部分

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值