JAVA的IO操作(四)
2016-07-14 21:37
537 查看
一:字节字符转换流(OutputStreamWriter和InputStreamReader):
OutputStreamWriter是Writer的子类,将输出的字符流转换成字节流,也就是讲一个字符流的输出对象变成字节流的输出对象。构造方法中传递一个OutputStream类的实例化对象。
InputStreamReader是Reader的子类,将输入的字节流变成字符流,也就是将一个字节流的输入对象变成字符流的输入对象。构造方法中传递一个InputStream类的实例化对象。
二:内存操作流(ByteArrayInputStream和ByteArrayOutputStream):
ByteArrayInputStream是将数据写入到内存中,ByteArrayOutputStream是将数据从内存中读取出来。
ByteArrayInputStream是InputStream的子类,将byte数组作为参数传递给它的构造方法的时候就是将数据输出到了内存中。
ByteArrayOutputStream就是从内存中(ByteArrayInputStream)读取数据,然后调用write方法将数据写入到ByteArrayOutputStream中方便读取。
也就是说ByteArrayInputStream和ByteOutputStream是存在于内存中的两个暂存器,可以将数据存入其中并进行操作之后输出。两个内存操作流联系在一起,ByteArrayOutoutStream通过write方法获取ByteArrayInputStream的数据。
大小写转化:
注意内存操作流是以内存为准的不是以程序为准。所以这里的输入流也是将数据输入到内存而不是写入程序。
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();
注意内存操作流是以内存为准的不是以程序为准。所以这里的输入流也是将数据输入到内存而不是写入程序。
相关文章推荐
- struts2 校验数据的有效性 2种方式
- Java多线程--线程简单认识1
- JDK 7 新特性 - 总览
- 基于spring security的用户单点登录
- Spring学习笔记四: 从Spring容器中获取Bean
- Spring学习笔记四: 从Spring容器中获取Bean
- springmvc+spring+mybatis+mysql框架整合(maven模块化分层)02
- 为什么要使用Java泛型
- 《Java编程思想》学习笔记(第二十一章):并发
- 【Java】重载与重写的区别
- java集合框架代码演示demo
- 极简Java连接TimesTen程序
- JAVA使用JDBC连接SQLITE数据库
- Java中正则Matcher类的matches()、lookAt()和find()的区别<转>
- 1.2线程的优点
- java 读写锁
- 学习Spring AOP
- spring IOC容器接口体系简介
- Genymotion模拟器在Eclipse上的安装
- java中新增的逻辑操作符"^"