1,明确源和目的 源--输入流:InputStream Reder 目的—-输出流OutputStream Writer
2,操作数据是否是纯文本 是——字符流 不是——字节流
3,当体系明确后再明确要使用那个具体对象通过设备来进行区分
源设备——内存 硬盘 键盘 目的设备——内存 硬盘 控制台
————字节流和字符流之间的转换是通过InputStreamReader 和OutputStreamWriter来完成的
InputStreamReader:字节流通向字符流的桥梁
OutputStreamWriter:字符流通向字节流的桥梁
练习一: 从键盘接受一个数字,列出该数字的中文表示格式,
例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
import java.io.*;
public class Test1 {
public static void main(String[] args){
method();
}
public static void method()
{//定义两个引用
BufferedReader bufr=null;
BufferedWriter bufw=null;
try{//创建键盘输入流
bufr=new BufferedReader(new InputStreamReader(System.in));
bufw=new BufferedWriter(new OutputStreamWriter(System.out));
//用查表法创建字符数组
char[] buf={'零','一','二','三','四','五','六','七','八','九'};
String line=null;
while((line=bufr.readLine())!=null)
{//定义结束标记
if("over".equals(line))
break;
//将读到的字符串转成字符数组
char[] chs=line.toCharArray();
//高级for循环遍历数组
for(char cha:chs)
{//将字符数组转成字符串再将字符串转成基本数据类型
int index=Integer.parseInt(new String(new char[]{cha}));
//查找并写出去
bufw.write(buf[index]);
bufw.flush();
}
//换行
System.out.println();
}
}
catch(Exception e)
{
throw new RuntimeException("出现非法字符");
}
finally{
try{if(bufr!=null)
//关闭输入流
bufr.close();
}
catch(Exception e)
{
throw new RuntimeException("读取失败");
}
try{
if(bufw!=null)
//关闭输出流
bufw.close();
}
catch(Exception e)
{
throw new RuntimeException("写入失败");
}
}
}
}
|
|