黑马程序员 —— 键盘读入及转换流

来源:互联网 发布:网络社区营销 编辑:程序博客网 时间:2024/06/05 07:16

 -----------android培训java培训java学习型技术博客、期待与您交流!------------ 

一、键盘录入

1、标准输入输出流

        System.in:对应的标准输入设备,键盘。它是InputStream类型。

        Ssytem.out:对应的是标准的输出设备,控制台。是PrintStream类型

2、转换流的由来  

键盘录入时,只能一个字节一个字节进行录入。那么能不能直接使用readLine方法来完成键盘录入的一行数据的读取呢?readLine方法是字符流BufferedReader类中方法。而键盘录入的read方法是字节流InputStream的方法。

      那么能不能将字节流转成字符流再使用字符流缓冲区的readLine方法呢?这就需要用到转换流了。

 3转换流的特点

       A、字符流与字节流之间的桥梁

       B、方便了字符流与字节流之间的操作

       C字节流中的数据都是字符时,转成字符流操作更高效。

4  InputStreamReader将字节流通向字符流步骤:

       a、获取键盘录入对象。

              InputStream in=System.in;

       b、将字节流对象转成字符流对象,使用转换流。

              InputStreamReaderisr=new InputStreamReader(in);

       c、为了提高效率,将字符串进行缓冲区技术高效操作。使用BufferedReader

              BufferedReaderbr=new BufferedReader(isr);

      注:键盘录入最常见写法

              BufferedReaderin=new BufferedReader(new InputStreamReader(System.in));

5示例:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;/** * 当录入一行数据后,敲回车就将该行数据进行打印 * @author Administrator */public class TransStreamTest{public static void main(String[] args) throws IOException{//获取键盘录入对象InputStream in = System.in;//将字节流对象转换成字符流对象,使用转换流InputStreamReaderInputStreamReader isr = new InputStreamReader(in);//为了提高效率,将字符串进行缓冲区技术高效操作,使用bufferedReaderBufferedReader bufr = new BufferedReader(isr);String line = null;while (null !=(line = bufr.readLine())){if ("over".equals(line)){break;}System.out.println(line.toUpperCase());}bufr.close();}}
<span style="font-family: 宋体; font-size: 10.5pt; letter-spacing: 0pt; text-indent: 21pt; line-height: 19.5pt; background-color: rgb(255, 255, 255);">6</span><span style="font-family: 宋体; font-size: 10.5pt; letter-spacing: 0pt; line-height: 19.5pt; background-color: rgb(255, 255, 255);">、 下面是输入输出常见写法(上面例子修改)</span>
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;/** * 输入输出转换流,及键盘录入常见写法 * @author Administrator */public class TransStreamTest1{public static void main(String[] args) throws IOException{//键盘录入常见写法。BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));//输出常见写法BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));String line = null;while (null != (line = bufr.readLine())){if ("over".equals(line))break;bufw.write(line.toUpperCase());//跨平台换行bufw.newLine();//一定要刷新缓冲区bufw.flush();}bufw.close();}}




0 0
原创粉丝点击