JAVA的IO操作(四)

一:字节字符转换流(OutputStreamWriter和InputStreamReader):
OutputStreamWriter是Writer的子类,将输出的字符流转换成字节流,也就是讲一个字符流的输出对象变成字节流的输出对象。构造方法中传递一个OutputStream类的实例化对象。
InputStreamReader是Reader的子类,将输入的字节流变成字符流,也就是将一个字节流的输入对象变成字符流的输入对象。构造方法中传递一个InputStream类的实例化对象。

            File f=new File("E:"+File.separator+"test.txt");
            Writer out=null;                    //定义一个字符的输出流
            out=new OutputStreamWriter(new FileOutputStream(f));
            out.write("Hello World!!!");
            out.close();
            File f=new File("E:"+File.separator+"test.txt");
            Reader reader=null;
            reader=new InputStreamReader(new FileInputStream(f));
            char[] c=new char[1024];
            int temp=0;
            int len=0;
            while((temp=reader.read())!=-1){            //运用了ASCII码
                c[len]=(char)temp;
                len++;
            }
            reader.close();

二:内存操作流(ByteArrayInputStream和ByteArrayOutputStream):
ByteArrayInputStream是将数据写入到内存中,ByteArrayOutputStream是将数据从内存中读取出来。
ByteArrayInputStream是InputStream的子类,将byte数组作为参数传递给它的构造方法的时候就是将数据输出到了内存中。
ByteArrayOutputStream就是从内存中(ByteArrayInputStream)读取数据,然后调用write方法将数据写入到ByteArrayOutputStream中方便读取。
也就是说ByteArrayInputStream和ByteOutputStream是存在于内存中的两个暂存器,可以将数据存入其中并进行操作之后输出。两个内存操作流联系在一起,ByteArrayOutoutStream通过write方法获取ByteArrayInputStream的数据。
大小写转化:

            String str="HELLO WORLD";
            ByteArrayInputStream bais=null;     //定义内存输入流
            ByteArrayOutputStream baos=null;    //定义内存输出流
            bais=new ByteArrayInputStream(str.getBytes());      //向内存中输出内容
            baos=new ByteArrayOutputStream();   //准备从内存中读取数据

            int temp=0;
            while((temp=bais.read())!=-1){
                char c=(char)temp;
                baos.write(Character.toLowerCase(c));
            }
            String newStr=baos.toString();
            bais.close();
            baos.close();

注意内存操作流是以内存为准的不是以程序为准。所以这里的输入流也是将数据输入到内存而不是写入程序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值