2016.10.11读取键盘录入(1)

public class ReadIn {

public static void main(String[] args) {

// TODO Auto-generated method stub

/*

* 字符流 FileReader FileWriter BufferedReader BufferedWriter

* 字节流 FileInputStream FileOutputStream BufferedInputSteam BufferedOutputStream

*

*/

//2016.10.11读取键盘录入

//读取键盘录入

//system.in对应的标准输入设备  ,键盘

//system.out 对应的标准输出设备 控制台


InputStream in = System.in;

StringBuffer sb = new StringBuffer();

try {

while (true) {

int ch = in.read();

if (ch == '\r')

continue;

if (ch == '\n'){

System.out.println(sb.toString());

break;

}

else sb.append((char)ch);

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

///////////////////////////////////////////////

//通过刚才的键盘录入一行数据并打印其大写,发现其实就是读一行数据的原理

//也就是readLine方法

//能不能直接使用readLine方法来完成键盘录入一行数据的读取呢

//readLine方法是字符流BufferedReader类中的方法

//而键盘录入的Read方法是字节流InputStream的方法

//那么能不能将字节流转成字符流 在使用字符流缓冲区的readLine方法呢?

//获取键盘录入对象

InputStream in = System.in;

//将字节流转成字符流对象, 使用转换流InputSreamReader

InputStreamReader isr = new InputStreamReader(in);

//为了提高效率,将字符串进行缓冲技术高校操作,使用BufferedReader

BufferedReader bur = new BufferedReader(sir);

//获取键盘录入常见写法

//BufferedReader bur = new BufferedReader(new InputStreamReader(System.in));


//输出设备

OutputStream out = System.out;

OutputStreamWriter osw = new OutputStreamWriter(out);

BufferedWriter bw = new BufferedWriter(sow);



String line = null;

try {

while ((line = bur.readLine())!=null) {

if ("over".equals(line)) {

break;

}

//System.out.println(line);

bw.write(line);

bw.newline();//换行

bw.flush();

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

try {

bur.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

你可能感兴趣的:(2016.10.11读取键盘录入(1))