/*
* 字符流:
* reader
* writer
*
* BufferedWriter
* BufferedReader
*
*
*
* 字节流:
* InputStream
* OutputStream
*
*BufferedInputStream
*BuffeedOutputStream
*
*
* 通过刚才的键盘录入一行数据并打印其大写,发现其实就是读一行数据的原理。也就是readLine方法。
*
* 能不能直接使用readLIne方法完成键盘录入一行数据的获取呢》
*
* readLine方法是BufferedReader方法。
* 而键盘录入的read方法是字节流InputStream的方法。
*
* 那么能不能将字节流转成字符流,再使用字符流的缓冲区的readLIne方法呢?
*/
import java.io.*;
class TransStreamDemo
{
public static void main(String[] args)throws IOException
{
//获取键盘录入对象
// InputStream in=System.in;
//将字节流对象转成字符流对象,使用转换流InputStreamReader
// InputStreamReader isr=new InputStreamReader(in);
//为了提高效率,将字符串缓冲区技术高效操作,使用BufferedReader
// BufferedReader bufr =new BufferedReader(isr);
//键盘录入最常见写法:
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
//OutputStream out=System.out;//OutputStream是字符流通向字节流的桥梁。
//OutputStreamWriter osw=new OutputStreamWriter(out);
//BufferedWriter bufw=new BufferedWriter(osw);
//3句变1句:
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
String line=null;
while((line=bufr.readLine())!=null)
{
if("over".equals(line))
break;
bufw.write(line.toUpperCase());
bufw.newLine();
bufw.flush();
}
bufr.close();
}
/*方式1:
public static void main(String[] args)throws IOException
{
//获取键盘录入对象
InputStream in=System.in;
//将字节流对象转成字符流对象,使用转换流InputStreamReader
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();
}
*/
}
|
|