java---转换流1(InputStreamReader和OutputStreamWriter)
2016-04-26 21:10
555 查看
★转换流功能1:充当字节流与字符流之间的桥梁
需求:模拟英文聊天程序,要求:
(1) 从键盘录入英文字符,每录一行就把它转成大写输出到控制台;
(2) 保存聊天记录到字节流文件。
要求1的设计分析:
1)需要从键盘接收录入,得用System.in,它是字节输入流InputStream;
2)需要处理字符,可以自己把字节强转成字符,也可以用字符流;
3)需要类似readLine的功能,而这
个方法在字符流BufferedReade
r中有(而且该类有缓冲增速)。
综上,采用转换流把字节流转成 要求2的设计分析:字符流处理比较合理,即使用InputStreamReader
要求2的设计分析:
1)需要把字符数据按行保存到字节流文件 ;
2)字符流采用BufferedWriter比较合适,因为它有newLine方法且能实现高效;
3)字节流文件,得采用FileOutputStream。
综上,采用转换流把字符流转成字节流处理比较合理,即使用OutputStreamWriter
需求:模拟英文聊天程序,要求:
(1) 从键盘录入英文字符,每录一行就把它转成大写输出到控制台;
(2) 保存聊天记录到字节流文件。
要求1的设计分析:
1)需要从键盘接收录入,得用System.in,它是字节输入流InputStream;
2)需要处理字符,可以自己把字节强转成字符,也可以用字符流;
3)需要类似readLine的功能,而这
package ThreadIO2_1.IO.transfer; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; public class TranStreamDemo { public static void main(String[] args) throws IOException { /** * 输入 */ InputStream in=System.in; InputStreamReader isr=new InputStreamReader(in); BufferedReader br=new BufferedReader(isr); /** * 输出 */ OutputStream out=new FileOutputStream("chat.txt"); OutputStreamWriter osw=new OutputStreamWriter(out); BufferedWriter bw=new BufferedWriter(osw); String line=null; while((line=br.readLine())!=null){ if("over".equals(line)){ /** * 养成好的代码习惯:调用String中的方法时, * 把常量字符串放在前面,防止变量为null而导致异常 */ break; } System.out.println(line.toUpperCase());//换成大写 bw.write(line); bw.newLine(); bw.flush(); } } }
个方法在字符流BufferedReade
r中有(而且该类有缓冲增速)。
综上,采用转换流把字节流转成 要求2的设计分析:字符流处理比较合理,即使用InputStreamReader
要求2的设计分析:
1)需要把字符数据按行保存到字节流文件 ;
2)字符流采用BufferedWriter比较合适,因为它有newLine方法且能实现高效;
3)字节流文件,得采用FileOutputStream。
综上,采用转换流把字符流转成字节流处理比较合理,即使用OutputStreamWriter
相关文章推荐
- SpringMVC使用Hibernate Validator验证用户输入
- 小易的升级之路-java
- JAVA学习16_Java的ISO、UTC、UNIX时间类型转换
- Java IO:CharArrayReader使用及源码分析
- Spring工具类ToStringBuilder用法简介
- java.lang.SecurityException: Permission Denial
- 深入理解Java:注解(Annotation)自定义注解入门
- 关于java的Cliass类
- java中枚举类的使用详解
- 常见的解析方式(java)
- LeetCode------Valid Anagram
- 笔试题之Java基础部分
- Struts2 - 常用的constant总结
- Java基础笔记:Java的基本语法
- 学习JAVA一
- java中使用反射做一个工具类,来为指定类中的成员变量进行赋值操作,使用与多个类对象的成员变量的赋值。
- Eclipse下如何运行微信SDK_Demo
- 04.Java 基础 - 类
- java泛型(一)、泛型的基本介绍和使用
- java中使用反射往一个泛型是Integer类型的ArrayList中添加字符串,反射的案例1.